linux input event 子系统

一、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: 设备类型。可以设置为:

define EV_SYN 0x00 表示设备支持所有的事件

define EV_KEY 0x01 键盘或者按键,表示一个键码

define EV_REL 0x02 鼠标设备,表示一个相对的光标位置结果

define EV_ABS 0x03 手写板产生的值,其是一个绝对整数值

define EV_MSC 0x04 其他类型

define EV_LED 0x11 LED灯设备

define EV_SND 0x12 蜂鸣器,输入声音

define EV_REP 0x14 允许重复按键类型

define EV_PWR 0x16 电源管理事件

define EV_FF_STATUS 0x17

define EV_MAX 0x1f

define EV_CNT (EV_MAX+1)

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 事件层 该函数返回一个指向 input_dev 类型的指针,该结构体是一个输入设备结构体,包含了输入设备的一些相关...
    季风落地窗阅读 704评论 0 3
  • 教程一:视频截图(Tutorial 01: Making Screencaps) 首先我们需要了解视频文件的一些基...
    90后的思维阅读 4,864评论 0 3
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,617评论 1 19
  • 名称 libev - 一个 C 编写的功能全面的高性能事件循环。 概要 示例程序 关于 libev Libev 是...
    hanpfei阅读 15,451评论 0 5
  • 5th【每日一思】优点。我的优点有哪些?朋友们说的高频词汇有哪些?你意外这些词汇吗? 优点:开朗,偶尔贴心,直觉较...
    柚子粒阅读 239评论 0 0