触摸屏管理结构体
将屏幕信息读取到结构体中
struct input_event
{
struct timeval time; //输入事件发生的时间戳,精确到微秒。
__u16 type; //输入事件的类型
__u16 code;
__s32 value;
};
time
struct timeval
{
__time_t tv_sec; // 秒
long int tv_usec; // 微秒(1微秒 = 10-3毫秒 = 10-6秒)
};
type
EV_SYN 事件间的分割标志,有些事件可能会在时间和空间上产生延续,比如持续按住一个按键 为了更好地管理这些持续的事件,EV_SYN用以将他们分割成一个个的小的数据包。
EV_KEY 用以描述键盘,按键或者类似键盘的设备的状态变化。
EV_REL 相对位移,比如鼠标的移动,滚轮的转动等。
EV_ABS 绝对位移,比如触摸屏上的坐标值。
EV_MSC 不能匹配现有的类型,这相当于当前暂不识别的事件 比如在Linux系统中按下键 盘中针对Windows系统的“一键杀毒”按键,将会产生该事件。
EV_LED 用于控制设备上的LED灯的开关,比如按下键盘的大写锁定键 会同时产生 ”EV_KEY” 和 ”EV_LED” 两个事件。
code
事件类型(type) | 事件代码(code) | 说明 |
EV_KEY | BTN_TOUCH | 触摸屏发生了按压、松开事件 |
EV_KEY | KEY_LEFT | 键盘的左箭头发生了按压、松开事件 |
EV_KEY | KEY_RIGHT | 键盘的右箭头发生了按压、松开事件 |
EV_ABS | ABS_X | 触摸屏发生了x轴坐标事件 |
EV_ABS | ABS_Y | 触摸屏发生了y轴坐标事件 |
EV_REL | ABS_Y | 触摸屏发生了y轴坐标事件 |
EV_ABS | ABS_Y | 触摸屏发生了y轴坐标事件 |
vlaue
事件类型(type) | 事件代码(code) | 发生值(value) | 说明 |
EV_KEY | BTN_TOUCH | 1 | 手指按压了触摸屏 |
EV_KEY | BTN_TOUCH | 0 | 手指松开了触摸屏 |
EV_KEY | KEY_LEFT | 1 | 左箭头被按下 |
EV_KEY | KEY_LEFT | 0 | 左箭头被松开 |
EV_ABS | ABS_X | 213 | 触摸屏产生了一个233的 x 轴坐标 |
EV_ABS | ABS_Y | 448 | 触摸屏产生了一个448的 y 轴坐标 |