Serielle Kommunikationsprogrammierung mit virtuellen COM-Ports

Serielle Port-Kommunikation

Virtuelle serielle Ports sind unerlässlich, wenn ältere Softwareprogramme eine Verbindung zu COM-Port-Geräten herstellen müssen, die aufgrund fehlender physischer serieller Ports nicht mit der Software an den Computer angeschlossen werden können. Das Gerät kann auch serielle Daten über das Internet oder LAN über eine TCP / IP-Verbindung an die App senden, unabhängig davon, wie weit sie voneinander entfernt sind.

In diesem Artikel finden Sie ein kurzes Tutorial zum Emulator virtueller serieller Ports, in dem Sie erfahren, wie Sie mithilfe einer einfachen, aber dennoch effizienten Treibersoftware für virtuelle Ports virtuelle serielle Schnittstellen in Ihrem Computer erstellen. Und ich hoffe, dass Sie mit den Informationen in diesem Artikel den traditionelleren Formen des Testens und Debuggens serieller Apps einen Schritt voraus sind.

Erstellen Sie jetzt eine virtuelle serielle Schnittstelle

Inhalt:

  1. Verwenden von VSPD mit Programmiersprachen
  2. VSPD mit C/C++
  3. VSPD mit Visual Basic
  4. VSPD mit Delphi
  5. Die Vorteile von Virtual Serial Port von Eltima
  6. FAQ zur seriellen Kommunikation

Verwenden von VSPD mit Programmiersprachen


Die Methode zum Testen und Diagnostizieren von Software mit virtuellen Geräten ist heute bei Entwicklern der Software für Kommunikationssysteme weit verbreitet. Ein virtuelles Gerät simuliert das Verhalten eines realen Geräts auf Softwareebene, sodass ein Programmierer eine Anwendung testen und debuggen kann in der Entwicklungsphase.

Die Methode der Emulation serieller Schnittstellen wird häufig bei der Entwicklung komplexester Kommunikationssysteme angewendet, einschließlich Geräten mit RS232- und RS485-Schnittstellen. Derzeit gibt es eine breite Palette von Softwaretools, mit denen mehrere virtuelle serielle Ports in Betriebssystemen (vorwiegend Windows-Betriebssysteme) erstellt werden können.

Das Windows-Betriebssystem ist aufgrund seiner enormen Beliebtheit ein Hauptziel für Anwendungen. Die Windows RS232-Programmierung befasst sich mit den COM-Anschlüssen des Betriebssystems, über die alle Daten in den Computer hinein und aus ihm heraus fließen. Es können viele Sprachen verwendet werden, aber C ist eine der Hauptsprachen für diese Art der Programmierung. Sie werden aufgefordert, die WIN32-API zu verwenden, und müssen je nach Anwendung möglicherweise die TAPI-Windows-Telefonieoberfläche untersuchen.

Linux ist ein weiteres sehr beliebtes Betriebssystem mit vielen Variationen in bestimmten Implementierungen. Ihre seriellen Ports werden unter Linux unterschiedlich benannt, mit Namen wie / dev / ttys0 und / dev / ttyUSB0. Es gibt also sofort Unterschiede in der Herangehensweise an die serielle Linux-Programmierung. C ist wieder eine beliebte Sprachwahl für die serielle Programmierung und Sie interagieren mit Geräten, die Linux als Dateien behandelt. Sie verwenden eine API wie Termios, um zwischen Ihrer Anwendung und den seriellen Schnittstellen zu kommunizieren.

Die Spezialisierung der seriellen Port-Programmierung liegt möglicherweise außerhalb des Fachwissens Ihres Teams, und Probleme bei der Kommunikation zwischen Ihrer Anwendung und den vorgesehenen Zielgeräten können zu einer lähmenden Verzögerung in Ihrem Entwicklungsprojekt führen. Probleme wie unerwartet beschädigter Text oder Verbindungsprobleme können für Programmierer ohne umfassende Erfahrung mit seriellen Schnittstellen schwer zu diagnostizieren sein.

Mithilfe zusätzlicher virtueller COM-Ports können Entwickler den Datenaustausch zwischen RS232- und RS485-Schnittstellen testen. Wenn es um erweiterte Funktionalität und Benutzerfreundlichkeit geht, scheint der von Eltima Software entwickelte Virtual Serial Port Emulator das derzeit leistungsstärkste Programm zu sein. Die Lösung ist vollständig kompatibel mit verschiedenen Versionen des Windows-Betriebssystems. Darüber hinaus ist der Emulator für die serielle Schnittstelle für Windows 10 mit WHQL digital signiert, was seine Leistung und Stabilität garantiert.

Erstellen Sie jetzt eine virtuelle serielle Schnittstelle

VSPD mit C/C++


Um die Funktionen des Emulators für virtuelle Ports in C und C ++ nutzen zu können, müssen Sie die DLL-Datei dynamisch laden, die erforderlichen Funktionen auswählen und aufrufen. Hier ist ein Beispiel, wie Sie dies in Visual C ++ tun können:

Sie können auch ein hervorragendes Beispiel für die Programmierung eines virtuellen COM-Anschlusses mit Visual Basic und Visual C++ für die Kommunikation zwischen AVR und PC mithilfe des Virtual Serial Port Driver sehen.

typedef bool (stdcall *CreatePairFn)(char *Port1, char *Port2);
typedef bool (stdcall *DeletePairFn)(char *Port);
typedef bool (stdcall *DeleteAllFn)(void);
typedef bool (stdcall *SetStrictBaudrateFn) (char *Port, bool StrictBaudrate);
typedef bool (stdcall *SetBreakFn) (char *Port, bool bBreak);
typedef bool (stdcall *QueryBusFn) (void* InBuffer, long sizeInBuffer, void* OutBuffer, long sizeOutBuffer);
typedef bool (stdcall *SetWiringFn) (char *Port, void *Buffer, long sizeBuffer);
typedef bool (stdcall *SetAccessListFn) (char *Port, void *Buffer, long sizeBuffer);
typedef bool (stdcall *CreatePairExFn)(char *Port1, char *Port2, char * UserSession);
typedef bool (stdcall *CreatePairWFn)(WCHAR *Port1, WCHAR *Port2);
typedef bool (stdcall *CreatePairExWFn)(WCHAR *Port1, WCHAR *Port2, WCHAR * UserSession);
typedef bool (stdcall *DeletePairWFn)(WCHAR *Port);
typedef bool (stdcall *SetStrictBaudrateWFn) (WCHAR *Port, bool StrictBaudrate);
typedef bool (stdcall *SetBreakWFn) (WCHAR *Port, bool bBreak);
typedef bool (stdcall *SetWiringWFn) (WCHAR *Port, void *Buffer, long sizeBuffer);
typedef bool (stdcall *SetAccessListWFn) (WCHAR *Port, void *Buffer, long sizeBuffer);
typedef bool (stdcall *DeletePairExFn)(char *Port, char * UserSession);
typedef bool (stdcall *DeletePairExWFn)(WCHAR *Port, WCHAR * UserSession);
typedef bool (stdcall *GetUserSessionFn)(char *Session, int &iSize);
typedef bool (stdcall *GetUserSessionWFn)(WCHAR *Session, int &iSize);
typedef bool (stdcall *SetStrictBaudrateExWFn) (WCHAR *Port, WCHAR * UserSession, bool StrictBaudrate);
typedef bool (stdcall *SetStrictBaudrateExFn) (char *Port, char * UserSession, bool StrictBaudrate);
typedef bool (stdcall *SetBreakExWFn) (WCHAR *Port, WCHAR * UserSession, bool bBreak);
typedef bool (stdcall *SetBreakExFn) (char *Port, char * UserSession, bool bBreak); typedef bool (stdcall *SetAccessListExWFn) (WCHAR *Port, WCHAR * WCHAR, void *Buffer, long sizeBuffer);
typedef bool (stdcall *SetAccessListExFn) (char *Port, char * WCHAR, void *Buffer, long sizeBuffer);

Codebeispiel:

bool CreateVSPair(char *Port1, char *Port2) {
OSVERSIONINFO VersionInfo;
HINSTANCE libInst;
libInst = LoadLibrary(VSPDCTL.DLL);
if (!libInst)
return false; /* Couldn't load library */
/* Substitute the typedefs above for functions other than CreatePairFn */
CreatePairFn CreatePair=(CreatePairFn)GetProcAddress(libInst, CreatePair);
if (CreatePair==0) return false; /* Couldn`t find function */
returnvalue=CreatePair(Port1, Port2); /* For example, Port1 = COM5 and Port2 = COM6 */
FreeLibrary(libInst);
return returnvalue;
};

VSPD mit Visual Basic


Die Installation von VSPD-Funktionen ist für Visual Basic-Benutzer viel einfacher. Sie müssen lediglich die folgenden Zeilen in die Quelldatei von Visual Basic einfügen:

Declare Function CreatePair Lib "VSPDCTL.DLL" (ByVal Port1$, ByVal Port2$) As Boolean
Declare Function DeletePair Lib "VSPDCTL.DLL" (ByVal Port$) As Boolean
Declare Function DeleteAll Lib "VSPDCTL.DLL" () As Boolean
Declare Function SetStrictBaudrateName Lib "VSPDCTL.DLL" (ByVal Port$, ByVal StrictBaudrate As Boolean) As Boolean
Declare Function SetStrictBaudrateHandle Lib "VSPDCTL.DLL" (ByVal Handle As Long, ByVal StrictBaudrate As Boolean) As Boolean
Declare Function CreatePair Lib "VSPDCTL.DLL" (ByVal Port1$, ByVal Port2$) As Boolean
Declare Function DeletePair Lib "VSPDCTL.DLL" (ByVal Port$) As Boolean
Declare Function DeleteAll Lib "VSPDCTL.DLL" () As Boolean
Declare Function SetStrictBaudrate Lib "VSPDCTL.DLL" (ByVal Port$, ByVal StrictBaudrate As Boolean) As Boolean
Declare Function SetBreak Lib "VSPDCTL.DLL" (ByVal Port$, ByVal bBreak As Boolean) As Boolean
Declare Function QueryBus Lib "VSPDCTL.DLL" (ByVal InBuffer As String, sizeInBuffer As Long, ByVal OutBuffer As String, sizeOutBuffer As Long) As Boolean
Declare Function SetWiring Lib "VSPDCTL.DLL" (ByVal Port1$, ByVal Buffer As String, sizeBuffer As Long) As Boolean

Legen Sie VSPDCTL.DLL in das Verzeichnis Ihres Programms. Jetzt kann die Funktion direkt aufgerufen werden.


VSPD mit Delphi


Hier sind die Funktionsdeklarationen für Delphi:

Function CreatePair(Port1, Port2 : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeletePair(Port : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeleteAll : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetStrictBaudrateName(Port: PChar, StrictBaudrate: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetStrictBaudrateHandle(hPort: THandle, StrictBaudrate: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function CreatePair(Port1, Port2 : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeletePair(Port : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeleteAll : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetStrictBaudrate(Port: PChar, StrictBaudrate: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetBreak (Port: PChar, bBreak: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function QueryBus (InBuffer: Pointer, sizeInBuffer: Integer, OutBuffer: Pointer, sizeOutBuffer: Integer) : Boolean;
stdcall; external "VSPDCTL.DLL";
Function SetWiring (Port: PChar Buffer: Pointer, sizeBuffer: Integer) : Boolean; stdcall; external "VSPDCTL.DLL";

Delphi kann ArmAccess entweder dynamisch oder statisch laden. Hier ist ein Beispielcode für das dynamische Laden:

Function CreatePairFn(PortName1, PortName2 : String) : Boolean;
Type TCreatePair = function(Port1, Port2 : PChar) : Boolean; stdcall;
Var Handle : THandle;
CreatePair : TCreatePair;
Begin
CreatePairFn := False;
Handle := LoadLibrary("VSPDCTL.DLL");
If (Handle <> 0) Then
Begin
@CreatePair:=GetProcAddress(Handle, "CreatePair");
If (CreatePair <> Nil) Then
CreatePairFn := CreatePair(PChar(PortName1), PChar(PortName2));
FreeLibrary(Handle);
End;
End;
Erstellen Sie jetzt eine virtuelle serielle Schnittstelle

Die Vorteile von Virtual Serial Port von Eltima


Virtual Serial Port Driver zeigt die Tiefe des Wissens und der technischen Fähigkeiten der Programmierer von Eltima. Schauen Sie sich einige der Features und Funktionen an, die das Team für diese Anwendungen bereitgestellt hat, und überlegen Sie, was sie für Ihr Projekt tun können.

Mit dieser Softwareanwendung können Sie virtuelle Paare serieller Schnittstellen erstellen und Daten über virtuelle Nullmodems übertragen. Virtuelle Ports erscheinen Ihrem System so, als wären sie physische Ports, und das Programm ermöglicht eine einfache Konfiguration Ihrer virtuellen Ports.

Hauptvorteile sind:


  • Mit einem Virtual Serial Port-Treiber können Sie eine unbegrenzte Anzahl von virtuellen COM-Port-Paaren hinzufügen, die über ein virtuelles Nullmodemkabel verbunden sind. Darüber hinaus bietet die Software die Möglichkeit, alle erstellten Paare in einem Clic zu entfernen.

  • Einmal erstellte und konfigurierte virtuelle serielle Ports werden beim Neustart des Systems vor der Benutzeranmeldung automatisch neu erstellt. Außerdem müssen Sie keine Ports schließen, wenn Sie die Einstellungen für virtuelle Paare ändern oder ein Paar vollständig löschen müssen.

  • Die App ermöglicht es, nicht nur virtuelle COM-Ports zu erstellen, sondern ihnen alle gewünschten Namen zu geben, einschließlich derer, die bereits von den vorhandenen physischen Ports verwendet werden. Benutzer können eine erforderliche virtuelle Schnittstelle leicht in der Gruppe "Ports" des Geräte-Managers finden.

  • Die Softwaretreiber haben die WHQL-Tests (Microsoft Windows Hardware Quality Labs) erfolgreich bestanden und sind von Microsoft digital signiert. Dies bedeutet, dass Sie beim Erstellen virtueller COM-Ports unter Windows 10, Windows Server 16, Windows XP usw. keine Warnungen erhalten.

  • Der Virtual Serial Port Driver unterstützt vollständig Standard-Hardware-Signalleitungen, einschließlich DTR/DSR/CTS/RTS/DCD/RI usw. und Software-Flusskontrolle (Xon/Xoff).

  • Die Nullmodememulation ist ein weiterer Vorteil, den Sie mit diesem Dienstprogramm erhalten. Der Virtual Serial Port Driver ermöglicht das Emulieren einer virtuellen seriellen Leitungsverbindung und deren Unterbrechung. Darüber hinaus bietet die Software verschiedene virtuelle Nullmodem-Schemata, die als Vorlage gespeichert werden können.

  • Darüber hinaus enthält der Virtual Serial Port Driver die Datei vspdctl.dll, mit der Sie die Funktionalität direkt von Ihrer eigenen Anwendung aus steuern können. Mithilfe dieser dynamischen Linkbibliothek können Sie virtuelle COM-Port-Paare im laufenden Betrieb erstellen und löschen, ohne sich auf das Standardkonfigurationsprogramm und dessen GUI verlassen zu müssen.
Erstellen Sie jetzt eine virtuelle serielle Schnittstelle

Häufig gestellte Fragen

Eine serielle Kommunikation bedeutet, dass die Datenbits in einer bestimmten Reihenfolge angeordnet sind und nacheinander über ein serielles Kabel transportiert werden, wodurch die Datenintegrität sichergestellt wird. Einige andere Vorteile dieser Art von Verbindung umfassen eine einfache Verkabelung und eine zuverlässige Datenübertragung über Fernverbindungen.
Um eine virtuelle serielle Schnittstelle in Windows 10 zu erstellen, benötigen Sie eine professionelle Softwarelösung Virtual Serial Port Driver. Es sind keine zusätzliche Hardware und Kabel erforderlich. Lesen Sie die folgenden schrittweisen Anweisungen, um eine virtuelle serielle Schnittstelle zu erstellen.
Eine virtuelle serielle Schnittstelle ist ein Softwarepaket, das echte vollständig emuliert. Ihr Betriebssystem und alle Dienstprogramme erkennen es also und interagieren mit ihm, als wäre es eine echte COM-Schnittstelle.
Es kommt häufig vor, dass der Benutzer beim Arbeiten mit dem Problem des physischen Fehlens eines COM-Ports konfrontiert ist. Ein wesentlicher Vorteil virtueller serieller Schnittstellen besteht darin, dass sie zum Testen und Debuggen von Software verwendet werden können, wenn im System kein physischer COM-Anschluss verfügbar ist.
1. Die Software verbindet virtuelle serielle Ports mit einem virtuellen Nullmodemkabel, sodass über die COM-Ports Daten zwischen verschiedenen Anwendungen über die RS232-Schnittstelle übertragen werden können. Für diesen Zweck konfigurierte virtuelle Ports verwenden nicht die Standardeinstellungen der Datenübertragungsgeschwindigkeit.

2. Dank eines seriellen Port-Simulators ist es möglich, Daten zwischen zwei oder mehr Anwendungen auszutauschen, ohne die komplexe Softwaretechnologie der Interprozesskommunikation und der gemeinsamen Nutzung von Ressourcen zu verwenden. Auf diese Weise verlässt sich ein Programmierer für den Datenaustausch eher auf virtuelle als auf physische COM-Ports. In der Regel ist die Geschwindigkeit der Datenübertragung über virtuelle COM-Ports höher als die Datenübertragung über reale serielle Ports.

3. Darüber hinaus besteht ein Hauptvorteil virtueller serieller Schnittstellen darin, dass sie zum Testen und Debuggen von Software verwendet werden können, wenn im System kein physischer COM-Anschluss verfügbar ist.

Die Spezialisten von Eltima Software können Ihnen bei allen Programmieranforderungen für die serielle Windows- oder Linux-Schnittstelle behilflich sein. Wir beherrschen viele Programmiersprachen und Betriebssystemplattformen und können mit Ihnen zusammenarbeiten, um Ihre Anwendung und die externen Geräte, auf die sie zugreifen muss, nahtlos zu integrieren. Die Eltima Port Virtualization Technology kann in Projekte jeder Größe integriert werden. Wenn Sie einige Problemprozeduren optimieren oder ein umfassendes Projektmanagement und Anwendungsentwicklung wünschen, verfügt Eltima Software über die Fähigkeiten, die Sie benötigen, um Ihr Projekt zum Laufen zu bringen. Nehmen Sie noch heute Kontakt mit ihnen auf und finden Sie heraus, wie sie Ihnen bei der Lösung Ihrer Probleme mit der seriellen Programmierung helfen und Ihr Projekt im Zeitplan halten können.

small logo Virtual Serial Port Driver
#1 bei Serial Port Software
Virtual Serial Port Driver
Emulation der seriellen Schnittstelle
4.9 rang basierend auf 97 + Nutzer
Holen Sie sich einen Download-Link für Ihren Desktop.
Senden Sie Ihre E-Mail-Adresse, um einen Link zum sofortigen Download auf Ihrem Desktop zu erhalten!
oder