AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) HID-Komponente - Status der Buttons abfragen
Thema durchsuchen
Ansicht
Themen-Optionen

HID-Komponente - Status der Buttons abfragen

Ein Thema von Breager · begonnen am 31. Jul 2012 · letzter Beitrag vom 24. Jan 2021
Antwort Antwort
Breager

Registriert seit: 18. Feb 2012
40 Beiträge
 
#1

AW: HID-Komponente - Status der Buttons abfragen

  Alt 1. Aug 2012, 22:31
Zitat von breager:
Leider wird eines meiner beiden Gamepads nicht erkannt
Ich habe mich geirrt. Dass Gamepad wird erkannt. Allerdings werden die Tasten nicht eingelesen. Vielleicht liegt es wirklich daran, dass kein Analogstick vorhanden ist.

Bei der HID-Komponente interpretiere ich nun die Rohdaten selbst. Ich kann mir ehrlichgesagt nicht vorstellen, dass die Werte bei verschiedenen Joysticks/Gamepads abweichen, testen kann ich das jedoch leider nicht in großem Ausmaß, da ich, wie schon erwähnt, nur zwei Gamepads besitze. Eigentlich wollte ich die Dataindices benutzen, allerdings sind diese für die Input Values in umgekehrter Reihenfolge. Die X-Achse hat somit den Index 1 und die Y-Achse den Index 0. Wenn ich die Bytes von links nach rechts lese, müsste es eigentlich umgekehrt sein.

Ich gehe davon aus, dass die ersten Bytes genutzt werden, um die Achsen in folgender Reihenfolge einzulesen: X-Achse, Y-Achse, und eventuell weitere Achsen (Z-Achse, relative Z-Achse). Danach wird der Hat-Switch eingelesen, falls vorhanden (4 Bits) und anschließend die Buttons (Gedrückter Button bei gesetztem Bit). Sollte Interesse bestehen, kann ich mein Demo-Programm hochladen.

Viele Grüße
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#2

AW: HID-Komponente - Status der Buttons abfragen

  Alt 2. Aug 2012, 08:16
...Sollte Interesse bestehen, kann ich mein Demo-Programm hochladen.

Viele Grüße

Ja, bitte!
  Mit Zitat antworten Zitat
Breager

Registriert seit: 18. Feb 2012
40 Beiträge
 
#3

AW: HID-Komponente - Status der Buttons abfragen

  Alt 2. Aug 2012, 17:23
O.k. hier mal mein Demo-Programm mit Quelltext und Exe. Das Programm ist jedoch noch nicht optimiert, ich werde daran noch einige Änderungen vornehmen. Im Moment wird davon ausgegangen, dass die Werte für Achsen (8 Bit), Hat-Switch (4 Bit) und die Buttons (jeweils 1 Bit) immer gleich lang sind. Ich bin mir nicht sicher, ob das auf jeden Joystick/Gamepad zutrifft. Eine Überprüfung diesbezüglich fehlt im Moment, werde ich aber noch einbauen. Eigentlich wollte ich den Dataindex zu Lokalisation der Werte nutzen. Ich denke, das werde ich noch dementsprechend ändern. Merkwürdig finde ich, dass die Werte für die Input Values in umgekehrter Reihenfolge angezeigt werden. Würde mich interssieren, ob das bei anderen Joysticks auch der Fall ist.

Unterstützt wird folgendes:
Achsen: X,Y,Z,Rel. Z; Hat-Switch, Nummern-Buttons
Zusätzliche Buttons, wie z.B. MODE oder VIBRATION, werden nicht unterstützt.

Getestet habe ich das Programm mit dem Rumblepad 2 und dem Precision Gamepad (beide von Logitech).

Viele Grüße

Geändert von MrSpock ( 5. Aug 2012 um 17:42 Uhr) Grund: Anhang auf Wunsch des Erstellers gelöscht.
  Mit Zitat antworten Zitat
Breager

Registriert seit: 18. Feb 2012
40 Beiträge
 
#4

AW: HID-Komponente - Status der Buttons abfragen

  Alt 3. Aug 2012, 23:43
Hallo,

habe das Problem nach langem Ausprobieren endlich gelöst. Bitte nutzt den Download im vorherigen Post nicht mehr. Ich würde den Download entfernen, kann jedoch meine alten Beiträge nicht mehr editieren. Ist vermutlich ein Fehler in meinem Browser?

Viele Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: HID-Komponente - Status der Buttons abfragen

  Alt 4. Aug 2012, 07:05
Hallo,

habe das Problem nach langem Ausprobieren endlich gelöst. Bitte nutzt den Download im vorherigen Post nicht mehr. Ich würde den Download entfernen, kann jedoch meine alten Beiträge nicht mehr editieren. Ist vermutlich ein Fehler in meinem Browser?

Viele Grüße
nein, jeder eigene Beitrag kann innerhalb von 24h geändert werden, aber danach halt nur noch von einem Mod
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Breager

Registriert seit: 18. Feb 2012
40 Beiträge
 
#6

AW: HID-Komponente - Status der Buttons abfragen

  Alt 4. Aug 2012, 23:10
Zitat von Sir Rufo:
nein, jeder eigene Beitrag kann innerhalb von 24h geändert werden
Danke Sir Rufo, dann muss ich mich diesbezüglich ans Team wenden.

Da ich immer wieder froh bin, wenn mir hier geholfen wird und ich im Internet keine entsprechende Beispiele für Delphi finden konnte, möchte ich Euch meine Lösung nicht vorenthalten. Letztendlich ist es doch recht einfach (wenn man weiss, wie es funktioniert ).

Das Programm im Anhang demonstriert, wie man mit der HID-Komponente der JVCL die Werte der Achsen eines Joysticks/Gamepads einlesen und überprüfen kann, welche Buttons gedrückt sind. Das Programm sollte mit jedem USB-Joystick/Gamepad funktionieren. Über Feedback diesbezüglich und Verbesserungsvorschläge würde ich mich natürlich freuen.

Im Moment ist das Programm auf 6 Achsen und 255 Buttons begrenzt (Ich habe keine Ahnung, wo die Limits bei einem Joystick liegen).

Vielleicht kann es jemand von Euch gebrauchen.

Viele Grüße
Angehängte Dateien
Dateityp: zip JoystickDemo02.zip (240,5 KB, 30x aufgerufen)
  Mit Zitat antworten Zitat
Tomski

Registriert seit: 17. Jun 2010
19 Beiträge
 
Delphi 2 Desktop
 
#7

AW: HID-Komponente - Status der Buttons abfragen

  Alt 24. Jan 2021, 09:38
Hallo @Breager,

vielen Dank für die Unit, Sie funktioniert auch heute noch hervorragend!

Gruß Tomski
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz