Hi, ich habe ein USB-Gerät und möchte dieses ansteuern. Dazu muss ich wissen, an welchem Port das Gerät angeschlossen ist. Unter Linux kann ich einfach lsusb eintippen und dann sehen, an welchem USB-Port das Gerät hängt. Im Gerätemanager von Windows sehe ich zwar, dass das Gerät da ist, aber ich finde keinen Hinweis darauf, an welchem der USB-Ports, ob z.B. USB00, USB01 ... Wie kann ich das rauskriegen?
Vielleicht hilft dir USBDevView von Nirsoft [1] weiter. Dort wird zumindest die Instance ID angezeigt. Gruß Dennis [1] http://www.nirsoft.net/utils/usb_devices_view.html
Du musst beim Zugriff halt danach suchen, typischerweise anhand VID/PID. libusb zB hat ein entsprechendes API.
Mit Bordmitteln geht das wohl gar nicht, da brauchts ein USB-Analyse-Tool. http://www.heise.de/download/usb-device-tree-viewer-1186404.html Das Ergebnis sieht dann so aus wie im Screenshot.
apfelbaum schrieb: > Dazu muss ich > wissen, an welchem Port das Gerät angeschlossen ist. Das muss man selbst herausfinden, denn das ändert sich ja immer mal. Du musst entweder über die Such-Funktionen deines USB-APIs gehen (bei LibUSB) oder über die Setup Api von Windows, wenn du z.B. WinUSB benutzt, denn da brauchst du dann den DevicePath zum Öffnen. Welche Software/Treiber nutzt du denn? Diese USB001 Geschichte gibts so unter Win eigentlich nicht, da zählt der DevicePath und der ist eineindeutig.
Programmierer schrieb: > Du musst beim Zugriff halt danach suchen, typischerweise anhand VID/PID. Yep, und wenn es deren mehrere sein können, noch anhand der Seriennummer. Was anderes machen ja lsusb und Konsorten auch nicht.
Was für ein Gerät? Deiner Anwendung ist es egal, an welchem Port das Gerät hängt. Eine Verbindung baust Du mit VID und PID auf (oder über die COM Nummer).
potter schrieb: > Eine Verbindung baust Du mit VID und PID auf Wenn zwei gleiche Geräte dran hängen, reicht das nicht.
Mike schrieb: > Wenn zwei gleiche Geräte dran hängen, reicht das nicht. Natürlich reicht es auch dann. Dann gibt es ja zwei Instanzen deines Treibers.
usb schrieb: > Natürlich reicht es auch dann. > Dann gibt es ja zwei Instanzen deines Treibers. Und woher weiß man, welches von den beiden Geräten nun das ist, das man ansprechen möchte?
Rolf Magnus schrieb: > Und woher weiß man, welches von den beiden Geräten nun das ist, das man > ansprechen möchte? Du nimmst Dir das Gerät mit der passenden Seriennummer.
René König schrieb: > Rolf Magnus schrieb: >> Und woher weiß man, welches von den beiden Geräten nun das ist, das man >> ansprechen möchte? > > Du nimmst Dir das Gerät mit der passenden Seriennummer. Ähm, ja genau. Danke für die Bestätigung. Wenn du genau hinschaust, siehst, du, daß das "es", das angeblich reichen soll, die Seriennummer nicht beinhaltet. Daher meine Frage, wie das ohne Seriennummer gehen soll.
:
Bearbeitet durch User
Ohne Seriennummer ist es für den Nutzer nicht zuzuordnen. Für Windows schon, der DevicePath ist dann trotzdem eineindeutig, denn statt des SerialNumber Strings werden dann zufällig erzeugte Zahlen/Buchstaben vergeben. Allerdings ändern die sich halt immer mal.
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.