Ich habe es geschafft, eine funktionierende Demo mit Hilfe eines Quellcodes I found zu kochen.
private static void Main(string[] args)
{
var hostCtrls = USB.GetHostControllers();
foreach (var hostCtrl in hostCtrls)
{
var hub = hostCtrl.GetRootHub();
foreach (var port in hub.GetPorts())
{
if (port.IsDeviceConnected && !port.IsHub)
{
var device = port.GetDevice();
Console.WriteLine("Serial: " + device.DeviceSerialNumber);
Console.WriteLine("Speed: " + port.Speed);
Console.WriteLine("Port: " + device.PortNumber + Environment.NewLine);
}
}
}
}
Die Anwendung zählt die USB-Host-Controller. Dann erhält es den Root Hub und enumatisiert die dazugehörigen Ports. Wenn ein Gerät angeschlossen ist und es sich nicht um einen Hub handelt, werden die erforderlichen Informationen angezeigt.
In Ihrem Fall wissen Sie wahrscheinlich, welches Gerät Sie überprüfen möchten, damit Sie die Quelle (sowohl den obigen als auch den verknüpften Code) ändern können, um nur dieses Gerät zu überprüfen.
Sie müssen eine Methode in der USB-Klasse erstellen, um einen bestimmten Port von einem bestimmten Hub abzurufen, indem Sie die Portnummer und den Pfad zum Hub angeben.
Etwas wie:
GetDeviceSpeed(string hubPath, int portNumber) { ... }
und den Anruf mit den entsprechenden Werten:
var hubPath = @"\\.\NUSB3#ROOT_HUB30#5&b235176&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}";
var portNumber = 2;
GetDeviceSpeed(hubPath, portNumber);
Wenn Sie jedoch nur ungern, dies zu tun, dann können Sie einfach den obigen Code verwenden und machen Bekanntmachung die Seriennummer des Geräts, das Sie testen möchten, und dann nur die Geschwindigkeit überprüfen:
if (device.DeviceSerialNumber == "xxxxxx")
Console.WriteLine("Speed: " + port.Speed);
Wenn Sie dies in einer Anwendung mit einer GUI verwenden möchten, können Sie einfach das zu prüfende Gerät in einem Dropdown-Menü auswählen.
Nun ... Es gibt einige Gedanken und hoffentlich eine funktionierende Lösung.
nicht sicher, ob wir bestimmte Namespaces dafür haben. Hast du versucht SharpUSBLib zu benutzen? (http://www.icsharpcode.net/OpenSource/SharpUSBLib/default.aspx) –
Sie können es ermitteln, indem Sie die Geschwindigkeit überprüfen. Siehe [this] (http://stackoverflow.com/questions/1324587/how-can-i-determine-the-speed-of-a-usb-port) Fragen. –
Welche Informationen möchten Sie über den USB-Anschluss wissen? – KF2