input_event 详解-Touch Screen

本文详细解析了Linux内核中的input_event结构体,重点讲解了在处理触摸屏事件时,type、code和value字段的含义。通过对不同type值的分析,阐述了如何理解EV_KEY、EV_REL和EV_ABS事件,以及它们在键盘、鼠标和触摸屏事件中的应用。同时,介绍了触控IC(如汇顶科技gt1x系列)如何区分接触和离开触摸屏的事件,以及如何获取触摸坐标、压力等信息。
摘要由CSDN通过智能技术生成

关键结构体解析:

struct input_event {

      struct timeval time;

      __u16 type;

      __u16 code;

      __s32 value;

};

type: 上报事件的类型

EV_SYN: 同步事件

EV_KEY:键盘事件

EV_REL: 相对坐标事件-鼠标

EV_ABS: 绝对坐标事件-触摸屏

我们解析一个input event 时,首先要确定type属性,code和value属性都是根据不同的type有不同的含义(在不同的前缀下,找对应的含义)

code: 不同的type,code有不同的含义

type = EV_KEY时,code代表键盘以及鼠标上不同的按键,如code = 9,表示此时event上报的是键盘上数字“9”对应的事件;code = 46,表示此时event上报的是键盘上字母"C“对应的事件

type = EV_REL时,code代表轨迹的类型,指示鼠标移动的方向,如code = 3,表示此时event上报的是鼠标向X轴移动的数据;当code = 4时,表示此时event上报的时鼠标向Y轴移动的数据。

type = EV_ABS时,code代表触摸坐标轴,如code = 0x35 ,表示此时的event上报

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值