Welche Reports für Spinwarrior mit HID-Komponente

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
charraeus
Posts: 13
Joined: Sat Nov 25, 2006 3:42 pm
Location: Putzbrunn, Bayern, Deutschland
Contact:

Welche Reports für Spinwarrior mit HID-Komponente

Post by charraeus »

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
Christian Harraeus

Das Familienvater-kompatible Heimcockpit: http://www.harraeus.de/flugsim/
Guido Körber
Site Admin
Posts: 2876
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Der SpinWarrior kennt keine Befehle, der sendet nur von sich aus Daten. So vermeiden wir, dass der Anwender das Zeitverhalten von aussen beeinflussen kann. Die Reports sind im Datenblatt beschrieben.
charraeus
Posts: 13
Joined: Sat Nov 25, 2006 3:42 pm
Location: Putzbrunn, Bayern, Deutschland
Contact:

Post by charraeus »

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
Christian Harraeus

Das Familienvater-kompatible Heimcockpit: http://www.harraeus.de/flugsim/
Guido Körber
Site Admin
Posts: 2876
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Oops, peinlich, das steht wirklich nicht im Datenblatt. Habe jetzt gerade nicht die notwendige Doku zur Hand, einfach mal in den Samplecode reinschauen.
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Die Deklaration der Reports ist ein bischen versteckt.
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 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:

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;
Alternativ kann man statt Byte auch Char als Typ fuer die Spins nehmen, da Char vorzeichenbehaftet ist und daher das Rechnen erleichtert.
Post Reply