HID mit C++ unter Linux ansprechen



  • Hallo,

    Ich möchte mit C++ eine Linux Applikation schreiben, die über die USB-Schnistelle mit einem uP kommuniziert. Die Firmware auf dem uP ist so eingestellt, dass dieser als HID fungiert. Ich habe leider keine Ahnung, wie ich diese Schnittstell mit C++ ansprechen kann, um die Daten zu lesen, oder zu schreiben. Kann mir jemand links mit nützlichen Information zu diesem Thema oder villeicht sogar ein Beispiel geben? Ganz toll wäre natürlich, wenn scho eine fix fertige Klasse existieren würde, welche ein read und eine write funktion hat.



  • Vermutlich funktioniert das, wie die meisten Hardware-Sachen unter Linux. Du öffnest das entsprechende Device (unter /dev) und kannst mit ioctl bestimmte Einstellungen vornehmen (dürfte in linux/usb.h detailierter stehen) und mit write/read lesen und schreiben.

    Wenn du einen Device-Treiber programmieren willst, dann sollte dir folgendes weiter helfen http://www.lrr.in.tum.de/Par/arch/usb/usbdoc/



  • Ich beschäftige mich gerade genau mit dem selben Problem. Ich habe ein USB Gerät das ein device anlegt: /dev/hidraw0

    Wenn ich aus der Datei auf der Shell lese bekomme ich Binärwerte:

    cat /dev/hidraw0
    u
    �0�������g������9��_�5~l
                                1
    u
    �0�������e��
                   ����5��_�5~l
                                 1
    u
    �0�������e����
                      ��;��_�5~l
                                1
    

    Wie kann ich denn nun diese Daten in einem C++ Programm auslesen und interpretieren?



  • Schon mal libusb angeschaut?



  • Ja hab ich gesehen, aber ich weiß nicht ob es das richtige ist? Ich finde so viele unterschiedliche Sachen:

    libusb
    libhid
    hidraw Beispiele
    input.h

    und weiß gerade nicht so recht mit was ich nun arbeiten soll?



  • Ich habe ein USB Gerät das ein device anlegt: /dev/hidraw0

    Hast du einen Link?

    libusb

    Genau die!

    libhid

    Wuerde ich nicht nehmen, da die Doku recht spaerlich ist (nach Aussage auf der Website.

    hidraw Beispiele

    Wenn das die Beispiele fuer dein Geraet sind, dann die ...

    input.h

    Super ... ich habe auch schon viele Dateien input.h genannt. Deine Antworten sind nicht sehr informativ. Muss man dir alles aus der Nase ziehen?



  • Sorry, ich meinte hdiapi. Tut mir Leid dass man mir alles aus der Nase ziehen muss, aber ist halt beim erstes Mal dass ich USB programmieren will und weiß gar nicht woran ich mich halten soll.

    Ich suche bei google: "c++ linux usb hid read" und finde alles mögliche. Zum Beispiel:
    https://github.com/signal11/hidapi
    oder
    http://lxr.free-electrons.com/source/samples/hidraw/hid-example.c

    Ich hätte gerne eine Vorlage zum Auslesen eines HID Gerätes per USB. Kann mir jemand nen guten Link geben?


Anmelden zum Antworten