Die Kommunikation mit einem USB-Gerät über den "USB Virtual Serial Port" mit C#?
Ich vor kurzem eingesteckt in einem USB-embedded-Gerät(mbed lpc1768) mit einem normalen USB-Kabel an einen Windows-7-desktop. Laut der docs, die kam mit dem Programm auf dem Gerät kommuniziert mit dem host(desktop) über ein USB Virtual Serial Port.
Wo fange ich an, wenn ich brauche, um zu schreiben/Lesen von Daten mit c#? Könnte ich den SerialPort .NET-Klasse oder brauche ich die LibUsbDotNet Bibliothek oder vielleicht etwas anderes?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eine gute Nachricht, wenn ich herausfinde, dass ein USB-Gerät kommuniziert in der VCP eher als USB-HID, da serielle verbindungen sind leicht zu verstehen.
Wenn das Gerät in Betrieb ist in
VCP
(Virtual Com Port), dann ist es so einfach wie mit derSystem.IO.Ports.SerialPort
geben. Sie müssen wissen, einige grundlegende Informationen über das Gerät, die meisten von denen können wir von Windows-Management (Geräte-Manager). Nach dem Bau etwa so:Du kann oder nicht brauchen, um einige zusätzliche flags, wie Anfrage zu senden (RTS) und Data Terminal Ready (DTR)
Dann den port öffnen.
port.Open();
Hören, können Sie fügen Sie einen Ereignis-handler zu
port.DataReceived
und verwenden Sie dannport.Read(byte[] buffer, int offset, int count)
Senden, können Sie
port.Write(byte[] buffer, int offset, int count)
ManagementObjectSearcher
um das Gerät zu finden (da weiß ich den Namen), so dass ichvar searcher = new ManagementObjectSearcher("SELECT * FROM WIN32_SERIALPORT")
und Iteration über dieManagementBaseObject
Sammlung insearcher.Get()
. Ich werde es in der Antwort.PortNo
zu"COM3"