Herunterladen Diese Seite drucken

Scancodesperre Der Matrixtasten Lesen/Setzen - B&R PC 300 Implementierungsanleitung

Vorschau ausblenden Andere Handbücher für PC 300:

Werbung

Panel PC 300
Implementierungsanleitung

7.11.4 Scancodesperre der Matrixtasten lesen/setzen

Die Scancodesperre der Matrixtasten des Panels können mit dem Key Service Kommando des MTCX
(siehe Seite 19) gelesen und gesetzt werden.
Diese Funktion kann zum Sperren der Scancodes verwendet werden, wenn z.B. für Testzwecke die Tas-
tenmatrix gelesen wird und das Betriebssystem währenddessen nicht auf Tastendrücke reagieren soll.
Das folgende C Codebeispiel zeigt, wie ermittelt werden kann, ob die Scancodes der Matrixtasten des
Panels gesperrt oder freigegeben sind.
Ob die Scancodes des Panels gesperrt sind, kann auch schneller über das Panel Flags Register des
MTCX (siehe Seite 35) gelesen werden (siehe MtcxAreScanCodesLocked Codebeispiel auf Seite 62).
Hinweis: Auf dem PPC300 wird nur die Panelnummer 0 unterstützt.
// Get scan code lock state of a panel.
//
// Parameters
//
PanelNumber
//
[in] Specifies the panel number: 0 to 15.
//
Note: PPC300 supports only panel number 0.
//
Locked
//
[out] Points to a variable that receives the
//
lock state: 1 = locked, 0 = unlocked.
//
// Return 0 at success and -1 at failure.
int GetScanCodeLock(unsigned int PanelNumber, int *Locked)
{
MTCX_SCANCODE_LOCK_DATA data;
unsigned char ErrorCode;
int retvalue;
// Read lock bits.
retvalue = MtcxReadCommand(MTCX_CMD_KEY_SERVICE, 0, 0, MTCX_DEV_BASEBOARD,
&data, sizeof(data), &ErrorCode);
if (retvalue != MTCX_OKAY)
{
// TODO: add your error handling here
return -1;
}
*Locked = (data.LockBits & (1<<PanelNumber)) ? 1 : 0;
return 0;
}
Listing 59: GetScanCodeLock – Scancodesperre lesen
Das folgende C Codebeispiel zeigt, wie die Scancodes der Matrixtasten des Panels gesperrt und freige-
geben werden können.
Wenn Lock gleich 0 ist, werden die Scancodes freigegeben und die zugeordneten Tastencodes werden
an das Betriebssystem gesendet, wenn eine Taste gedrückt wird. Wenn Lock ungleich 0 ist, sind die
Scancodes gesperrt und das Betriebssystem empfängt keine Tastencodes. Es können dann nur die Zu-
stände der Tasten gelesen werden.
// Set scan code lock state of a panel.
//
// Parameters
//
PanelNumber
//
[in] Specifies the panel number: 0 to 15.
//
Note: PPC300 supports only panel number 0.
//
Lock
//
[in] Specifies the lock state: 1 = locked, 0 = unlocked.
Copyright © B&R - Änderungen vorbehalten
PPC300_Implementierungsanleitung_V1_02.doc
Codebeispiele
02.11.09
105/132

Werbung

loading