ich habe ein kleines Problem, welches folgendes ist:
Nachdem ich eine Magnetschlatermatrix (8x8) aufgebaut habe, möchte ich diese nun auslesen.
Dies funktioniert einwandfrei, allerdings mit einer kleinen Einschränkung:
Ich erhalte nur die Felder, wenn es eine Zustandsänderung bei einer der 64 Reedkontakten ergab. Allerdings möchte ich, dass bei Aufruf des Lesens mir alles ausgibt.
Bisher sieht die Funktion folgendermaßen aus:
Die Werte sollen in das MatrixErgebnis-Array geschrieben werden, welches eine Globale Variable ist.
Code: Select all
void ReedMatrix()
{
ULONG pid;
WCHAR sn[9];
string text;
string product;
int bytes;
IOWKIT56_SPECIAL_REPORT report;
IOWKIT56_IO_REPORT rep;
int zwischen[8] = {0,0,0,0,0,0,0,0};
IOWKIT_HANDLE devHandle;
devHandle = IowKitOpenDevice(); //Iow Kit öffnen
pid = IowKitGetProductId(devHandle); //Get product-ID
IowKitGetSerialNumber(devHandle, sn); //Get serialnumber
memset(&report, 0x00, IOWKIT56_SPECIAL_REPORT_SIZE);
report.ReportID = 0x18; //Use KeyMatrix-Mode
report.Bytes[0] = 0x01; //enable
IowKitWrite(devHandle, 1, (char *) &report, IOWKIT56_SPECIAL_REPORT_SIZE);
memset(&report, 0x00, IOWKIT56_SPECIAL_REPORT_SIZE);
report.ReportID = 0x19;
IowKitReadNonBlocking(devHandle, 1, (char *) &report, IOWKIT56_SPECIAL_REPORT_SIZE);
{
for(int x =0; x<=7; x++)
{
MatrixErgebnis[x] = report.Bytes[x+1];
cout << hex << (int) MatrixErgebnis[x];
}
cout << endl;
}
Ich möchte bei Aufruf dieser Prozedur die aktuell betätigten Schalter zurückgegeben bekommen, ohne dass eine Zustandsänderung erfolgt ist.
Mfg: Stefan