Ich verwende schon für meine 3 IOWarrior40 die HID-Komponente und möchte jetzt auch noch einen Spinwarrior anschließen und mit der HID-Komponente verwalten.
Beim IO-Warrior sind im Datenblatt die Reports beschrieben, die ich mit Hilfe der HID-Komponente versende/empfange. Wo finde ich solch eine Beschreibung für den Spinwarrior? Evtl. hilft auch ein Hinweis auf eine der mit dem SDK gelieferten Dateien - als Ausgangspunkt für die weitere Suche. Danke.
Viele Grüße,
Christian
Welche Reports für Spinwarrior mit HID-Komponente
Moderator: Guido Körber
-
- Site Admin
- Posts: 2876
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
-
- Posts: 13
- Joined: Sat Nov 25, 2006 3:42 pm
- Location: Putzbrunn, Bayern, Deutschland
- Contact:
Also entweder ich bin blind (was ich nicht ausschließen möchte :-) ), oder auf eurer Web-Seite ist ein alter Stand des Datenblatts, oder ...
Was ich damit sagen will: Eine Beschreibung der Reports des Spinwarrior habe ich im Datenblatt nicht gefunden :-(. Ich habe gerade eben extra nochmal das Datenblatt von der Webseite gesaugt (Stand aus der Fußzeile des Datenblatts: V 1.0.0, Nov. 21st 2005, for chip revision V1.0.0.0).
Viele Grüße,
Christian
Was ich damit sagen will: Eine Beschreibung der Reports des Spinwarrior habe ich im Datenblatt nicht gefunden :-(. Ich habe gerade eben extra nochmal das Datenblatt von der Webseite gesaugt (Stand aus der Fußzeile des Datenblatts: V 1.0.0, Nov. 21st 2005, for chip revision V1.0.0.0).
Viele Grüße,
Christian
-
- Site Admin
- Posts: 2876
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
Die Deklaration der Reports ist ein bischen versteckt.
In spindev.h:
In Spins steht jeweils die aktuelle vorzeichenbehaftete(!) relative Aenderung der Drehgebers.
In Buttons je ein Bit pro Button.
In readwrit.c formt SpiniSetData von Report in API-Struktur um.
Fuer Delphi heisst das:
Alternativ kann man statt Byte auch Char als Typ fuer die Spins nehmen, da Char vorzeichenbehaftet ist und daher das Rechnen erleichtert.
In spindev.h:
Code: Select all
// Don't forget to pack it!
#pragma pack(push, 1)
typedef struct _SPINKIT_REPORT_R4
{
BYTE ReportID;
BYTE Spins[4];
BYTE Buttons;
}
SPINKIT_REPORT_R4, *PSPINKIT_REPORT_R4;
typedef struct _SPINKIT_REPORT_R6
{
BYTE ReportID;
BYTE Spins[6];
BYTE Buttons;
}
SPINKIT_REPORT_R6, *PSPINKIT_REPORT_R6;
In Buttons je ein Bit pro Button.
In readwrit.c formt SpiniSetData von Report in API-Struktur um.
Fuer Delphi heisst das:
Code: Select all
type
SPINKIT_REPORT_R4 = packed record
ReportID: Byte;
Spins: array [0..3] of Byte;
Buttons: Byte;
end;
SPINKIT_REPORT_R6 = packed record
ReportID: Byte;
Spins: array [0..5] of Byte;
Buttons: Byte;
end;