2013-07-19 21 views
7

Ich suche einen Treiber für einen Gamecontroller, den ich habe (ein Cobalt-Flux www.cobaltflux.com). Der physikalische Controller selbst hat neun Gesichtstasten und zwei Kontrollfeldtasten (Start/Auswahl). Die Steuerbox hat einen USB-Port, aber soweit ich das beurteilen kann, hat noch nie jemand dafür Treiber geschrieben. Das Endergebnis, das ich will, ist, in der Lage zu sein, den Kobaltfluss über den USB-Port zu stecken und Fenster als ein Spielkontroller zu erkennen.Ich schreibe einen Gamecontroller-Treiber für einige Hardware, die über USB angeschlossen ist.

Ich habe etwas Programmiererfahrung. Ich bin Senior Undergraduate Student in Informatik an der UC Davis und Praktikant in einem großen Unternehmen für eingebettete Systeme, jedoch beinhaltet dieses Projekt mehrere Aspekte, über die ich keine Erfahrung habe: Hardware und Software über einen USB-Port anschließen und Feedback von der Hardware untersuchen baue nicht (welche Bits leuchten auf, wenn ich eine Taste drücke?), und erstelle Treiber und Programme im Allgemeinen für Windows.

Da ich persönlich niemanden kenne, der in der Lage wäre, mich auf den richtigen Weg zu einem Workflow zu bringen, um dieses Problem zu lösen, frage ich hier. Ich stelle mir den Ansatz geht so etwas wie:

ich schließen Sie das Gerät über eine USB-

ich ein Programm öffnen, um abzufragen, was die Auswirkungen der Tasten drücken auf dem USB-Kanal sind

ich ein Programm schreiben, das Schnittstellen diese Signale vom USB-Port zu den Game-Controller-Treibern, die Windows

hat Es kann sich lohnen zu beachten, dass ich muss Joypad-Unterstützung und nicht JoySTICK-Unterstützung für die Tasten haben, da spielen wird das Drücken einer beliebigen Anzahl von Tasten an Einmal und Joysticks registrieren im Allgemeinen nur eine Richtung der Eingabe a t jede gegebene Zeit.

Jeder Rat oder jede Hilfe würde sehr geschätzt werden. Ich habe Probleme herauszufinden, wo ich anfangen soll.

+0

Wählen zu schließen, wie unklar oder zu breit. –

+1

Ich habe eine ähnliche Frage und fühle mich nicht zu breit oder unklar. Ich habe einen Logitech Lenkrad-Controller, der in W8 oder W10 nicht unterstützt wird. Es erkennt es, liest aber keine Eingaben. Ich möchte einfach etwas schreiben, das an diesem USB-Anschluss zu hören ist, und mir dann erlauben, diese Informationen einer Gamecontroller-Schnittstelle zuzuordnen. – Tanoshimi

Antwort

4

Ich habe genau das gleiche Problem seit mehr als einem Jahr und ich habe noch nicht die richtige Lösung gefunden.

Wenn Sie das Pad über USB einstecken, meldet es mit einer Geräte-ID und einer Hersteller-ID, welches Gerät es ist. Windows Plug-and-Play beginnt mit der Suche nach einem Treiber. Dieser Mechanismus entdeckt, dass es ein Zeigegerät ist (in meinem Fall eine oder zwei Mäuse) und stellt sicher, dass es als Rohdateneingabevorrichtung behandelt wird. Eingaben von diesen Geräten werden in Nachrichten umgewandelt, die vom Betriebssystem verarbeitet werden. Die Lösung scheint zu sein, die Nachrichten eines solchen rohen Eingabegeräts an den richtigen Handler zu übergeben. In meinem Fall werden die beiden Mäuse beide als Mäuse erkannt und die Nachrichten werden von demselben Handler verwendet wie die von der dritten Maus, die wirklich mein Zeigegerät ist. Ich bin nicht genug erfahren in C++ - Programmierung, um in die Rawinput-API zu graben. Ich habe gerade einen interessanten Link als Antwort auf meine Frage erhalten: http://www.icculus.org/manymouse/ zumindest gibt das eine Antwort auf mein Problem. Vielleicht gibt es Ihnen Ideen zum Schreiben Ihres Treibers! Viel Glück !!! Stefan