linux input event 子系统

linux input event 子系统,第1张

一、linux input 子系统中,每个输入设备可以建立一个devices,如插入USB mouse的时候会建立,在系统、dev/input目录下就会生成一个对应的device,如:/dev/input/event0,可以通过读取device获取输入设备的信息 具体可以访问http://blog.sina.com.cn/s/blog_602f87700101dno6.html

0.1:关键结构体input_event信息:

struct input_event {

struct timeval time

__u16 type

__u16 code

__s32 value

}

type: 设备类型。可以设置为:

sdk封装的解决思路;

type:EV_REL鼠标设备 0x02

code : rel_x 0x00 表示x轴方向 rel_y 0x01 表示y轴方向 (一次鼠标移动会产生两个input event事件

value: EV_REL type下有正负表示方向

介绍键盘的code

Type为EV_KEY时,value: 0表示按键抬起。1表示按键按下。(4表示持续按下等?)。

问题:因为会出现一次鼠标移动就有两个事件产生,所以就要判断这一时刻到底是哪个事件

方法:

鼠标事件:

上1

下0

左2

右3

键盘事件:

上103

下108

左105

右106

停28

蓝牙键盘

1:2

2:3

3:4

4:5

5:6

w:17

a:30

s:31

d:32

Linux中输入设备的事件类型有:

EV_SYN 0x00 同步事件

EV_KEY 0x01 按键事件

EV_REL 0x02 相对坐标

EV_ABS 0x03 绝对坐标

EV_MSC 0x04 其它

EV_LED 0x11 LED

EV_SND 0x12 声音

EV_REP 0x14 Repeat

EV_FF 0x15 力反馈

EV_LED LED灯事件

EV_SND 声音事件

EV_REP 重复按键事件

EV_FF 受力事件

EV_PWR 电源事件

EV_FF_STATUS 受力状态事件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7983308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存