Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Rohdaten eines "USB Human Interface Device" auslesen/verarbeiten

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
mr_bunnyman



Anmeldungsdatum: 07.07.2009
Beiträge: 2

BeitragVerfasst am: 07. Jul 2009 21:39   Titel: Rohdaten eines "USB Human Interface Device" auslesen/verarbeiten

Hallo Forum,

ich stehe vor einem kleinen Problem, bei dem ich hier ein paar Anregungen erfragen wollte. Kurz gesagt: Ich würde gerne von einem USB-HID (eine 6-Achsen "Space Maus") die Eingabedaten direkt in einem (Userspace)-Programm auswerten können. Mit so einem Ding ist es möglich, alle 6 Freiheitsgrade in einem Eingabegerät zu nutzen. Es gibt Linux Treiber, wenn ich die Space Maus einstecke funktioniert sie direkt als Eingabegerät.

Auf welchem Weg komme ich nun aber an die direkten "Rohdatenpakete"? Mich interessiert statt der jeweiligen Mauszeigergeschwindigkeit in der Richtung eines Freiheitsgrades eher dessen Ableitung/Position -- aber das ist eigentlich nur ein "verrechnen" der Rohdaten. Als normale Maus soll das Ding gar nicht arbeiten, sondern voll meinem Programm gehören. Zu beachten ist, das das Gerät an einem embedded-System betrieben wird, sprich an Infrastruktur so gut wie nichts vorhanden ist (kein X-Server!).

Welche Schnittstelle im System könnte man am besten anzapfen? Wenn das ganze mit möglichst wenig Anpassungen am Kernel möglich ist, umso besser -- spricht im Userspace würd ich gerne bleiben, mit C komme ich halbwegs zurecht. Mit einem USB-Sniffer (usbmon/whireshark) konnte ich schon mal ein bisschen mithorchen, ist natürlich unpraktisch auf Dauer...

Könnte mir jemand Hinweise geben, in welche Richtung, bei welchen Werkzeuge und bei welchen Schnittstellen ich mich am ehesten umgucken könnte?

Um das Bild abzurunden, hier nochmal kurz die Syslogmeldungen für das ein/ausstecken:

Code:
Jun 12 10:30:24 my kernel: [ 3136.177077] usb 1-2: new low speed USB device using uhci_hcd and address 2
Jun 12 10:30:25 my kernel: [ 3136.407889] usb 1-2: configuration #1 chosen from 1 choice
Jun 12 10:30:25 my kernel: [ 3136.561319] usbcore: registered new interface driver hiddev
Jun 12 10:30:25 my kernel: [ 3136.761357] input: 3Dconnexion SpaceNavigator as /devices/pci0000:00/0000:00:1d.0/usb1/1-2/1-2:1.0/input/input9
Jun 12 10:30:25 my kernel: [ 3136.763306] generic-usb 0003:046D:C626.0001: input,hidraw0: USB HID v1.10 Multi-Axis Controller [3Dconnexion SpaceNavigator] on usb-0000:00:1d.0-2/input0
Jun 12 10:30:25 my kernel: [ 3136.763358] usbcore: registered new interface driver usbhid
Jun 12 10:30:25 my kernel: [ 3136.763365] usbhid: v2.6:USB HID core driver
Jun 12 10:31:00 my kernel: [ 3171.594255] usb 1-2: USB disconnect, address 2


Vielen Dank und mit allerbesten Grüßen

Der Bunnyman
 
Benutzer-Profile anzeigen Private Nachricht senden

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 08. Jul 2009 11:14   Titel:

In /etc/X11/xorg.conf statt /dev/input/mice nur /dev/input/mouse0 (oder1, 2, 3) eintragen, danach wird die Spacemouse von X in Ruhe gelassen. Danach kannst du /dev/input/event5 (oder 1,2,3,4,6, etc.) auslesen, was dir die HID-Events ausgibt. Das Format dieser Events ist dokumentiert und auch für Multi-Achsen-Geräte mit hunderten Knöpfen geeignet. Falls dir das ebenfalls noch zu "gekocht" ist (unwahrscheinlich), kannst du das HID-Treibermodul für dieses Gerät entladen und direkt per libusb die Pakete von USB abgreifen.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

mr_bunnyman



Anmeldungsdatum: 07.07.2009
Beiträge: 2

BeitragVerfasst am: 08. Jul 2009 21:16   Titel:

Danke für die Stichworte!

Nach einem weiteren Tag Recherche habe ich schliesslich einen passenden freien Treiber gefunden, der sehr genau das tut was ich wollte. Die anderen Varianten habe ich mir auch angesehen, bringen aber keine Vorteile. Kleines demoprogramm hab ich schon fertig, das ganze muss jetzt nur noch auf ARM portiert werden... Aber das wird schon, da weis ich zumindest wo ich anfangen muss.

Also einen schönen Abend noch!
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy