struct input_event

#inlcude <linux/input.h>
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_SW            0x05
#define EV_LED            0x11 //LED
#define EV_SND            0x12//声音
#define EV_REP            0x14//repeat
#define EV_FF            0x15
#define EV_PWR            0x16
#define EV_FF_STATUS        0x17
#define EV_MAX            0x1f
#define EV_CNT            (EV_MAX+1)

code:
如果事件的类型代码是EV_KEY,该代码code为设备按键代码

  代码植0~127为键盘上的按键代码,

  0x110~0x116 为鼠标上按键代码,

    其中0x110(BTN_ LEFT)为鼠标左键,

    0x111(BTN_RIGHT)为鼠标右键,

    0x112(BTN_ MIDDLE)为鼠标中键.

  其它代码含义请参看include/linux /input.h文件.

如果事件的类型代码是EV_REL,code值表示轨迹的类型.

  如指示鼠标的X轴方向 REL_X (代码为0x00),

  指示鼠标的Y轴方向REL_Y(代码为0x01),

  指示鼠标中轮子方向REL_WHEEL(代码为0x08).

value:
事件的值.

如果事件的类型代码是EV_KEY,

  当按键按下时值为1,

  松开时值为0;

如果事件的类型代码是EV_ REL,

  value的正数值和负数值分别代表两个不同方向的值.

时间: 2024-10-11 01:13:57

struct input_event的相关文章

Linux-hexdump命令调试event驱动—详解(13)

hexdump: 查看文件的内容,比如二进制文件中包含的某些字符串,通常用来调试驱动用 1.调试 键盘驱动 讲解 当我们insmod挂载了键盘驱动后,找到键盘驱动被放在event1设备里, 此时没有按键按下,所以event1里面的数据是没有的,那么数据又是从来哪里来? 通过键盘驱动的read函数,若有按键按下,就会上传按键数据给用户层,此时的用户层就是hexdump 因为键盘驱动的input_handler 是:evdev_handler 所以键盘驱动的read函数是: evdev_handle

Tiny6410移植tslib

一.将Tiny6410一线触摸程序改成输入设备(input device) 由于友善一线触摸下位机不开源,所以只能在官方提供的内核模块上进行修改. 官方源代码:http://pan.baidu.com/s/1bog4rZD 1.修改模块加载函数 1 static int __init dev_init(void) 2 { 3 int ret; 4 #ifdef TS_INPUT_DRIVER 5 /* alloc input system device */ 6 ts.input = input

20150303 IMX257 输入子系统(二)之键盘模拟

20150303 IMX257 输入子系统(二)之键盘模拟 2015-03-03 李海沿 前面我们已经详细介绍了基本的知识:地址http://www.cnblogs.com/lihaiyan/p/4309329.html 接下来,我们使用IMX257的IO引脚中断+Linux输入子系统实现一个模拟键盘按键.实现的效果是,我们使用IO模拟按键L.按键S和Enter键 这三个按键. 这次我们就不再多废话了,直接上程序,大家看代码: 实验效果图: 如图所示: 我们依次按下三个按键 第一个按键 显示的键

input子系统——架构、驱动、应用程序

一.input子系统架构 input子系统由驱动层drivers,输入子系统核心层input core,事件处理层event handler组成. 一个输入事件,通过输入设备发给系统如鼠标移动,键盘按键按下等通过device driver->input core(handler->event函数)->event handler->user space的顺序到达用户空间传给应用程序. 一个输出事件,通过系统发给输入设备,通过user space->event handler-&

AM335x(TQ335x)学习笔记——GPIO按键

还是按照S5PV210的学习顺序来,我们首先解决按键问题.TQ335x有六个用户按键,分别是上.下.左.右.Enter和ESC.开始我想到的是跟学习S5PV210时一样,编写输入子系统驱动解决按键问题,但是浏览driver/input/keyboard目录时意外的发现了gpio-keys.c,大体上看下该驱动程序,其功能是实现了通用的gpio按键.再去看了下DTS,发现DTS中有对gpio-keys的引用,于是猜到,新的内核不需要自己编写输入子系统驱动,可以通过配置DTS直接解决按键问题.本人最

[arm驱动]input system 子系统的驱动编写

更多可参考 Linux输入子系统分析 input 子系统架构总结 1.定义一个static struct input_dev结构体 static struct input_dev *mybutton_dev; 2.初始化时分配input_dev结构体 mybutton_dev = input_allocate_device();//分配 input_dev /*能产生的事件类型 1. #define EV_SYN 0x00 /*表示设备支持所有的事件*/ 2. #define EV_KEY 0x

06day知识点

clk.h 时钟打开 时钟频率 clk_get 传递两个参数 得clk对象 clk_get clk_enable clk_disable clk_get_rate,函数实现在arch/arm/plat-samsung/clock.c中 clk对象声明在arch/arm/mach-exynos/clock-exynos4.c中 clk_enable 打开时钟总线 clk_disable 关闭 clk_get_rate clk_exynos4.c 文件中有对clk的定义 input 输入设备驱动框架

第3章 文件I/O(4)_dup、dup2、fcntl和ioctl函数

5. 其它I/O系统调用 (1)dup和dup2函数 头文件 #include<unistd.h> 函数 int dup(int oldfd); int dup2(int oldfd, int newfd); 返回值 若成功返回新文件描述符,出错返回-1 功能 文件描述符的复制(将oldfd复制给newfd) 参数 old:原先的文件描述符 newfd: 新文件描述符 备注 (1)由dup返回的新文件描述符一定是当前可用文件描述符中最小数值. (2)用dup2则可以用newfd参数指定新描述符

Linux 输入子系统

Technorati 标签: Kernel 输入子系统 Input      在Linux中,输入设备(如按键.键盘.触摸屏.鼠标等)是典型的字符设备,其一般的工作机理,是底层在按键.触摸时,触发一个中断,或者驱动通过定时器定时查询,通过这两种方式通知CPU,CPU然后通过SPI.I2C或I/O接口读取键值.坐标等数据,放入缓冲区,字符设备驱动管理该缓冲区,向上提供read接口供应用程序使用.      在上述的工作流程中,只有终端.读取数值是根具体硬件设备相关,而输入事件的缓冲区管理以及字符设