USB Device Ids



  • Hallo!

    Vorweg: Da ich aus der Windows-Welt komme, habe ich nicht wirklich viel Erfahrung mit Linux-Systemprogrammierung.

    Nun zu meinem Problem: Ich habe mehrere serielle Geräte (Sensoren) über einen Seriell-USB-Adapter an meinem PC angeschlossen. Je nach Reihenfolge des Einstöpselns ändern sich aber die zugewiesenen Ports (/dev/ttyUSB0 usw.).

    Wie kann ich nun in meinem C++-Programm auslesen, welches USB-Gerät auf welchen Port gemapped wurde? Dann könnte ich ja in meinem Programm die Hardware-Ids hinterlegen und dann darüber nachschauen, welcher Port dazugehört.

    Wäre für Tipps sehr dankbar 🙂 .

    Viele Grüße



  • Ich muss dazu sagen, dass ich selbst bisher nichts mit USB gemacht habe. Aber ich würde mir mal libusb anschauen. Das sollte es bei allen populären Distributionen schon im Paketmanager geben und es gibt sogar ein Windows-Backend. libusb hat zB die Funktion libusb_open_device_with_vid_pid mit der du Devices über die Ids öffnen kannst.



  • Vielen Dank. Das sieht schon mal ganz gut aus (bis auf die Tatsache, dass es eine C-Lib ist :p )

    Jetzt habe ich aber immer noch ein Problem: Ich habe zwei identische USB-Serial-Converter, also haben beide die gleiche Vendor und Product Id. Haben solche USB-Converter auch irgendeine Art eindeutige Seriennummer? Ich weiß wohl, dass USB-Festplatte bzw. -Sticks eine Datenträgerseriennummer haben, aber zu Konvertern konnte ich im Internet nichts finden...

    Viele Grüße


Anmelden zum Antworten