Keymatrix / Tastenmatrix aktuelle Positionen

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
ftsStefan
Posts: 1
Joined: Thu May 26, 2016 10:26 pm

Keymatrix / Tastenmatrix aktuelle Positionen

Post by ftsStefan »

Guten Tag alle Miteinander,
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;
	}
Also kurz zusammengefast:
Ich möchte bei Aufruf dieser Prozedur die aktuell betätigten Schalter zurückgegeben bekommen, ohne dass eine Zustandsänderung erfolgt ist.

Mfg: Stefan
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: Keymatrix / Tastenmatrix aktuelle Positionen

Post by Christoph Jung »

Einfach die Tastenmatrix in einer Variable zwischenspeichern und diese dann auswerten. Ein anderer Weg fällt mir dazu gerade nicht ein.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
towaibw
Posts: 198
Joined: Sat Dec 27, 2003 10:55 pm
Location: Berlin / Germany
Contact:

Re: Keymatrix / Tastenmatrix aktuelle Positionen

Post by towaibw »

Da hilft das Datenblatt:

The status of the matrix is returned when ever there
is a change of status or it can be requested
immediately by sending a report with ID $19.

Und so mache ich das auch in IOWJ (Achtung Reklame!).

Gruß Thomas
Post Reply