#inlcude <linux/input.h>
struct input_event { struct timeval time; __u16 type; __u16 code; __s32 value; };
type:
#define EV_SYN 0x00 #define EV_KEY 0x01 //按键 #define EV_REL 0x02 //相对坐标(轨迹球) #define EV_ABS 0x03 //绝对坐标 #define EV_MSC 0x04 //其他 #define EV_SW 0x05 #define EV_LED 0x11 //LED #define EV_SND 0x12//声音 #define EV_REP 0x14//repeat #define EV_FF 0x15 #define EV_PWR 0x16 #define EV_FF_STATUS 0x17 #define EV_MAX 0x1f #define EV_CNT (EV_MAX+1)
code:
如果事件的类型代码是EV_KEY,该代码code为设备按键代码
代码植0~127为键盘上的按键代码,
0x110~0x116 为鼠标上按键代码,
其中0x110(BTN_ LEFT)为鼠标左键,
0x111(BTN_RIGHT)为鼠标右键,
0x112(BTN_ MIDDLE)为鼠标中键.
其它代码含义请参看include/linux /input.h文件.
如果事件的类型代码是EV_REL,code值表示轨迹的类型.
如指示鼠标的X轴方向 REL_X (代码为0x00),
指示鼠标的Y轴方向REL_Y(代码为0x01),
指示鼠标中轮子方向REL_WHEEL(代码为0x08).
value:
事件的值.
如果事件的类型代码是EV_KEY,
当按键按下时值为1,
松开时值为0;
如果事件的类型代码是EV_ REL,
value的正数值和负数值分别代表两个不同方向的值.