Hallo Zusammen, ich kämpfe gerade mit der LibUsbDotNet v. 2.2.8 und habe einige Fragen zu den Grundlagen. Das Ziel des Projektes ist die Integration eines PS2 BuzzControllers in ein eigenes Programm. Ich möchte möglichst viel selbst machen um mal wieder ins Programmieren zu kommen. Nutzen möchte ich hierzu C# mit der LibUsbDotNET. Ich habe zwar einige Beispielprojekte gefunden, würde es aber lieber einmal selbst versuchen. Außerdem möchte ich wirklich verstehen wie der Verbindungsaufbau durch die LibUsb funktioniert. Unklar ist mir aktuell, wie ich einen Gerätetreiber durch den LibUsb -Treiber ersetzen kann. Der Windows (10) Gerätemanager lässt dies nicht zu. Den Treiber habe ich mit dem durch LibUSB mitgelieferten InfWizzard erstellt. Die Einbindung wollte ich dann über den Gerätemanager durchführen. "Rechtsklick" auf das Gerät und Treiber aktualisieren. Allerdings haut das überhaupt nicht hin. Ist das Vorgehen, den Systemtreiber durch den von LibUSB zu ersetzen, denn an dieser Stelle überhaupt korrekt? Die Erstellung des Treibers lief problemlos ab. Nach dem Start des InfWizzard habe ich den Haken bei "Driverless" entfernt und schon wurden sämtliche USB-Geräte, die verbunden sind, gefunden. Ich denke das zeigt das die Lib unter Win10 funktioniert. Die Einbindung der Lib (DLL) in VisualStudio hat ebenfalls gut funktioniert. Allerdings liefert mir die Funktion "UsbDeviceFinder MyUsbFound = new UsbDeviceFinder(vid, pid);" kein einziges Gerät zurück. Kann dies ggf. an vid und pid liegen? Oder liegt hier das Problem, dass die Geräte noch den Windows-Treiber und nicht den der LibUSB nutzen? Der Methoden Aufruf der Lib benötigt int Werte, der Gerätemanager liefert mir Hex-Werte. Die Hex-Werte habe ich mit folgendem Aufruf in int-Werte konvertiert. int vid = Int32.Parse(vid_hex, System.Globalization.NumberStyles.HexNumber); int pid = Int32.Parse(pid_hex, System.Globalization.NumberStyles.HexNumber); Das müsste ja passen. Die Werte vid_hex und pid_hex sind vom Typ String. Die Werte lauten: vid="557" pid="2213" (in HEX). Als Dezimalwerte erhalte ich vid=1367 und pid=8723. Das müsste ja auch passen. Trotzdem findet die Funktion das Gerät leider nicht. Habt Ihr einen Tip wie ich den Windows-Treiber durch den LibUsb-Treiber ersetzen kann? Viele Grüße, Andreas P.S. In dem Beitrag: http://stackoverflow.com/questions/25714930/libusbdotnet-no-devices-found-when-calling-usbdevice-alldevices tritt ein ähnliches Problem auf. Allerdings ist mir nicht ganz klar wie es nun gelöst wurde.
:
Bearbeitet durch User
Andreas S. schrieb: > kein einziges Gerät zurück. Kann dies ggf. an vid und pid liegen? Möglich. Mal im Gerätemanager nachgeschaut? > Oder > liegt hier das Problem, dass die Geräte noch den Windows-Treiber und > nicht den der LibUSB nutzen Auch möglich. Für HID Geräte würde ich unter Windoof niemals LibUSB einsetzen wollen, da das nur unnötiges Treiberchaos verursacht. An HID Geräte kann man auch ohne Treiber Daten senden (genauer: Mit dem Windows Treiber selbst). Dafür gibts auch Beispielcode zu finden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.