Hallo,
hat schon mal jemand versucht einen Drehgeber über den Keywarrier auszuwerten -> Ziel ist es die Sondertasten für den Lautstärkenlevel über einen Drehgeber zu aktivieren.
THX
Gruß Ansgar
Drehgeber und Sondertasten
Moderator: Guido Körber
-
- Site Admin
- Posts: 2856
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Das geht weder noch. Ein Drehgeber lässt sich mit dem KeyWarrior nicht sinnvoll auswerten und der KeyWarrior unterstützt nicht die Media-Keys. Die Keycodes in der Keyboard Page der HID Spec werden von den meisten Systemen nicht unterstützt.
Eine sinnvolle Lösung wäre es das mit einem SpinWarrior und einem Stück Software zu implementieren.
Eine sinnvolle Lösung wäre es das mit einem SpinWarrior und einem Stück Software zu implementieren.
Hmpf...schade. Ich hatte gehofft, das die Medi Keys unterstützt werden... für den Drehgeber hätte ich auch noch eine externe beschaltung spendiert, aber wenn das mit den Media Keys nicht geht, sieht's schlecht aus. :(
Es war ziehl, das ganze mit möglichst geringen Aufwand zu gestallten und vor allem ohne zusätzlichen Treiber-Stack.
Gruß Ansgar
Es war ziehl, das ganze mit möglichst geringen Aufwand zu gestallten und vor allem ohne zusätzlichen Treiber-Stack.
Gruß Ansgar
-
- Site Admin
- Posts: 2856
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Wo ist dieser code?Guido Körber wrote:Treiber wäre nicht nötig, beim SpinWarrior haben wir ein Beispiel dabei, wie man mit einem einfachen Programm Tastencodes aus den SpinWarrior Daten erzeugt.
Hab beim spinwarrior SDK zwar ein kleines Delphi programm mit displays gesehen (funktioniert toll mit buttons und drehgeber), aber kein samplecode der tasten emuliert...
hab C++ leider nie gelernt, und da meine C kenntnisse schwach sind könnte ich schon etwas hilfe gebrauchen... :-)
greetz,
Mike
-
- Site Admin
- Posts: 2856
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
hat wirklich niemand etwas sample code? ich bin mal soweit (blutiger anfänger, vergibt mir bite :) :
----------------------------------------
#include <cstdlib>
#include <string>
#include <iostream>
#include "stdafx.h"
#include "spindev.h"
#include "spinkit.h"
#include "time.h"
using namespace std;
using std::string;
// Write functions here
BOOLEAN IsSpinWarrior6Btn(SPINKIT_HANDLE spinHandle)
{
return SpinKitGetProductId(spinHandle) == SPINKIT_PRODUCT_ID24R4;
}
int main(int argc, char *argv[])
{
int i, j;
bool taster[7];
ULONG readout;
char rdout[4];
int numSpins;
int S0,S1,S2,S3;
SPINKIT_HANDLE SpinDevice ;
PSPINKIT_DATA BoxData;
SPINKIT_REPORT_R4 SpinArchive;
// Open device, Check if connected
SpinDevice = SpinKitOpenDevice();
if (SpinDevice == NULL)
{
printf("Failed to open device\n");
goto out;
}
// Check if 6 or 4button version
i = IsSpinWarrior6Btn(SpinDevice);
printf("1 means its the 6button, 0 means 4button \n");
printf("and the result is %d \n", i);
// read some data
SpinKitRead(SpinDevice, BoxData);
taster[0] = BoxData.Buttons[0];
SpinKitCloseDevice(SpinDevice);
out:
system("PAUSE");
return 0;
}
------------------------------------------------------
...beim SpinKitRead() fangen die probleme an - eben, etwas einfaches in C++ wäre wirklich super!
greetz,
Mike
----------------------------------------
#include <cstdlib>
#include <string>
#include <iostream>
#include "stdafx.h"
#include "spindev.h"
#include "spinkit.h"
#include "time.h"
using namespace std;
using std::string;
// Write functions here
BOOLEAN IsSpinWarrior6Btn(SPINKIT_HANDLE spinHandle)
{
return SpinKitGetProductId(spinHandle) == SPINKIT_PRODUCT_ID24R4;
}
int main(int argc, char *argv[])
{
int i, j;
bool taster[7];
ULONG readout;
char rdout[4];
int numSpins;
int S0,S1,S2,S3;
SPINKIT_HANDLE SpinDevice ;
PSPINKIT_DATA BoxData;
SPINKIT_REPORT_R4 SpinArchive;
// Open device, Check if connected
SpinDevice = SpinKitOpenDevice();
if (SpinDevice == NULL)
{
printf("Failed to open device\n");
goto out;
}
// Check if 6 or 4button version
i = IsSpinWarrior6Btn(SpinDevice);
printf("1 means its the 6button, 0 means 4button \n");
printf("and the result is %d \n", i);
// read some data
SpinKitRead(SpinDevice, BoxData);
taster[0] = BoxData.Buttons[0];
SpinKitCloseDevice(SpinDevice);
out:
system("PAUSE");
return 0;
}
------------------------------------------------------
...beim SpinKitRead() fangen die probleme an - eben, etwas einfaches in C++ wäre wirklich super!
greetz,
Mike