ir_kbd.h
来自「WinCE 3.0 BSP, 包含Inter SA1110, Intel_815」· C头文件 代码 · 共 173 行
H
173 行
/*
* Copyright 1997 Motorola. All Rights Reserved.
*/
/*************************************************************************
* File: ir_kbd.h
* Description:
* Sejin IR Keyboard and RS-232 Receiver Defines
*
* NOTES:
*
* - Keyboard sends 4 byte packets per character/event
*
* - IR Receiver has LEDS (CAPS_LOCK, SCROLL_LOCK, NUM_LOCK) which
* require transmitter to send data -
*
* - IR Receiver RESET Command:
* - Tx: - 0xFF -
* - Rx: No response (until SelfTest command sent)
*
* - IR Receiver SelfTest and Revision Request Command:
* - Tx: - 0xF3 -
* - Rx: - 0xAA (self-test OK) or 0xFE (fail)
* - revision byte (0xXX)
*
* - IR Receiver LED Command/Control Bits:
* - Tx: - 0xEx -
* - x is any combination (OR) of the following:
* - CapsLock - 0x04 -
* - NumLock - 0x02 -
* - ScrollLock - 0x01 -
* - Rx: No response.
*
*************************************************************************/
/*
* Defines for Receiver Commands/Responses
*/
#define IR_RCVR_RESET_CMD (0xFF)
#define IR_RCVR_SELFTEST_CMD (0xF3)
#define IR_RCVR_SELFTEST_OK (0xAA)
#define IR_RCVR_SELFTEST_FAIL (0xFE)
#define IR_RCVR_LED_CMD (0xE0)
#define IR_RCVR_CAPS_LOCK_LED (0x04)
#define IR_RCVR_NUM_LOCK_LED (0x02)
#define IR_RCVR_SCROLL_LOCK_LED (0x01)
/***********************************************************************
* Defines for IR Keyboard Self Test Response Data (in 4byte buffer)
*/
typedef struct IrRcvrSelfTestResponse
{
unsigned char stResult; /* 0xAA - self-test OK - 0xFE - fail */
unsigned char rcvrRev; /* receiver revision code */
unsigned char void0; /* empty */
unsigned char void1; /* empty */
}
IR_RCVR_ST_RESPONSE;
typedef struct PreMungedIrRcvrSelfTestResponse
{
unsigned char void1; /* empty */
unsigned char void0; /* empty */
unsigned char rcvrRev; /* receiver revision code */
unsigned char stResult; /* 0xAA - self-test OK - 0xFE - fail */
}
PM_IR_RCVR_ST_RESPONSE;
/***********************************************************************
* Defines for IR Keyboard Event Packet (4 bytes)
*
*
* #if (SMC_KBD_EXTERNAL_BUFFERS || ! DATA_CACHE_LITTLE_ENDIAN_MODE
*
* - no pre-munge of IR_RCVR_PKT is required
*
* #if (DATA_CACHE_LITTLE_ENDIAN_MODE && SMC_KBD_INTERNAL_BUFFERS)
*
* - pre-munge(32-bit)/byte-swap of IR_RCVR_PKT is required
* if data is accesed directly in internal dual port RAM
*
*/
typedef struct IrReceiverPacket
{
unsigned char pktHdr; /* 0x97 */
unsigned char devId; /* KBD(0x00)/Mouse(0xF8)//APPL//LWIN//RWIN */
unsigned char keyStates; /* Make/Brk //FN//LS//RS//LA//RA//LC//RC */
unsigned char keyCode; /* IR keyboard matrix code */
}
IR_RCVR_PKT;
typedef struct PreMungedIrReceiverPacket
{
unsigned char keyCode; /* IR keyboard matrix code */
unsigned char keyStates; /* Make/Brk //FN//LS//RS//LA//RA//LC//RC */
unsigned char devId; /* KBD(0x00)/Mouse(0xF8)//APPL//LWIN//RWIN */
unsigned char pktHdr; /* 0x97 */
}
PM_IR_RCVR_PKT;
typedef struct MouseReceiverPacket
{
unsigned char pktHdr; /* 0x97 */
unsigned char devId; /* KBD(0x00)/Mouse(0xF8)//APPL//LWIN//RWIN */
unsigned char x_data; /* bit 7: sign, bits 6-0: Coord data */
unsigned char y_data; /* bit 7: sign, bits 6-0: Coord data */
}
MOUSE_RCVR_PKT;
typedef struct PreMungedMouseReceiverPacket
{
unsigned char y_data; /* bit 7: sign, bits 6-0: Coord data */
unsigned char x_data; /* bit 7: sign, bits 6-0: Coord data */
unsigned char devId; /* KBD(0x00)/Mouse(0xF8)//APPL//LWIN//RWIN */
unsigned char pktHdr; /* 0x97 */
}
PM_MOUSE_RCVR_PKT;
#define RCVR_PKT_HEADER (0x97)
#define DEV_ID_MASK (0xF8)
#define DEV_ID_KEYBOARD (0x00)
#define DEV_ID_MOUSE (0xF8)
#define DID_STATE_MASK (0x03)
#define DID_KEYSTATE_APPL (0x04)
#define DID_KEYSTATE_LWIN (0x02)
#define DID_KEYSTATE_RWIN (0x01)
#define DID_M_BTN_DOWN (0x04)
#define DID_R_BTN_DOWN (0x02)
#define DID_L_BTN_DOWN (0x01)
#define DID_NO_BTN (0x00)
#define KEYSTATE_MAKE (0x00)
#define KEYSTATE_BREAK (0x80)
#define KEYSTATE_FN (0x40)
#define KEYSTATE_LSHIFT (0x20)
#define KEYSTATE_RSHIFT (0x10)
#define KEYSTATE_LALT (0x08)
#define KEYSTATE_RALT (0x04)
#define KEYSTATE_LCTRL (0x02)
#define KEYSTATE_RCTRL (0x01)
#define KEYSTATE_SHIFT (0x30)
#define KEYSTATE_ALT (0x0C)
#define KEYSTATE_CTRL (0x03)
#define KEYCODE_CAPITAL (0x73)
#define KEYCODE_NUMLOCK (0x74)
#define KEYCODE_SCROLL (0x7D)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?