Xbox360 Controller C Integration

Heute habe ich ein Stück Code geschrieben, der es einfach ermöglicht, einen Xbox360 Controller  in ein C Programm zu integrieren. Der Code liest die Werte der Achsen und Knöpfe des Controllers aus und gibt diese Informationen auf dem Bildschirm aus. Das folgende Bild zeigt die Ausgabe dieser Informationen:

XBox360 Controller Signale

In diesem Fall wurden die Tasten „A“ and „TL“, welche die „top left“ Taste ist, gedrückt. Das Projekt trägt den Namen xboxControllerClient und kann in meinem Repository unter https://code.google.com/p/scholtyssek-blogspot/ untergeladen werden.

Die Konfiguration des Controllers befindet sich in der Headerdatei xboxController.h. Darin ist außerdem das Mapping der Tasten und Achsen implementiert. Die gemessenen Daten werden in einer Struktur von Typ xboxCtrl gespeichert, welche sich ebenfalls in der Headerdatei befindet. Das folgende Beispiel zeigt, wie der Code verwendet werden kann:

Die Methode initXboxContoller(XBOX_DEVICE) öffnet eine Verbindung zu dem Device  /dev/input/js0. Dieses ist als Standarddevice eingetragen, um ein anderes Device zu verwenden, kann einfach der Wert von XBOX_DEVICE verändert werden. Anschließend wird mit dem Aufruf von getXboxDataStruct() ein Pointer auf die Datenstruktur xboxCtrl geholt. Darin sind die Messdaten gespeichert. Die Werte können mit einem Aufruf von  readXboxData(xbox) periodisch aktualisiert werden. Mit einem Aufruf von printXboxCtrlValues(xbox) können die Messwerte dann auf in der Konsole ausgegeben werden. Das war’s schon, viele Freude damit 🙂

Über Marco Scholtyssek

Student of technical computer science at FH Dortmund, works as software developer at itemis AG in Lünen.

Dieser Beitrag wurde unter Eingebettete Systeme, Linux abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.