linux 触摸屏 软件开发,4.6.2 触摸屏应用开发接口

4.6.2  触摸屏应用开发接口

在Linux系统中,所有的输入设备(键盘、鼠标、触摸屏)都使用统一的输入系统进行管理。每个/dev/input/eventX都对应着一个输入设备。这些输入设备可以通过对应的/sys/class/ input/inputX/name文件查询到对应的设备名称。在/proc/bus/input/devices中有所有设备的详细信息。

当应用程序打开/dev/input/eventX设备后,可以使用read函数实现输入事件的读取。在linux/input.h中定义了输入事件的结构体:

struct input_event {

struct timeval time;  //时间戳

__u16 type;   //事件类型

__u16 code;   //事件代码

__s32 value;   //事件的值

};

表4-14中介绍了事件类型的定义及含义,触摸屏使用的事件类型为EV_ABS。

表4-14  事件类型定义

事 件 类 型

含义

事 件 类 型

含义

EV_SYN

同步时间

EV_LED

LED

EV_KEY

按键事件

EV_SND

声音

EV_REL

相对坐标(鼠标)

EV_REP

重复

EV_ABS

绝对坐标(触摸屏)

EV_FF

力反馈

EV_MSC

其他

EV_PWR

电源键

事件代码的含义也不同,见表4-15。

表4-15  事件代码的含义

事件类型

事件代码的含义

EV_KEY

键值

EV_REL

轨迹类型(X轴方向或Y轴方向)

EV_ABS

坐标类型(X轴坐标或Y轴坐标)

事件值的含义见表4-16。

表4-16  事件值的含义

事件类型

事件值的含义

EV_KEY

1表示按键按下;0表示按键抬起

EV_REL

鼠标偏移量(X轴偏移或Y轴偏移)

EV_ABS

坐标值(X轴坐标或Y轴坐标)

在Linux的GUI系统中,会利用上述接口对所有的输入设备进行管理。应用程序可以通过在GUI中注册监听器、在消息队列中增加对应事件的处理函数,完成输入设备事件的处理。

应用程序也可以通过write函数,向设备写入input_event事件,实现对输入设备事件的模拟。

【责任编辑:book TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值