31

有人可以告诉我 input_event 结构使用的数据类型的属性是什么吗?

在 input.h 文件中定义如下:

struct input_event {
struct timeval time;
__u16 type;
__u16 code;
__s32 value;
};

但没有其他描述!甚至谷歌搜索也没有给我带来任何有趣的东西。

我唯一知道的是,它time给出了纪元的秒数​​或毫秒数,并value给出了按下按钮的代码。但即使是value财产的价值对我来说也不是很清楚。在我的程序中,每次击键都会产生六个事件。以下事件是按 ENTER 键的响应:

type=4,code=4,value=458792
type=1,code=28,value=1
type=0,code=0,value=0
type=4,code=4,value=458792
type=1,code=28,value=0
type=0,code=0,value=0 

那些是a写信的:

type=4,code=4,value=458756
type=1,code=30,value=1
type=0,code=0,value=0
atype=4,code=4,value=458756
type=1,code=30,value=0
type=0,code=0,value=0

我想将值解码为真正的字母,但我不明白属性的含义。

请帮忙!

4

1 回答 1

50

其中struct input_event,它在include/linux/input.h中定义。


来自5. Linux kernel Documentation/input/input.txt中的事件接口(并修改为提供正确的头文件名):

  • time是时间戳,它返回事件发生的时间。

  • type例如EV_REL对于相对时间,EV_KEY对于按键或释放。在include/linux/input-event-codes.h中定义了更多类型。

  • code是事件代码,例如REL_Xor KEY_BACKSPACE,完整的列表在include/linux/input-event-codes.h中。

  • value是事件携带的价值。要么是相对变化 ,要么是(操纵杆...)的EV_REL绝对新值,要么是释放,按键和自动重复。EV_ABS0EV_KEY12

有关指南和示例代码,请在网络上搜索"linux kernel" "input subsystem".

于 2013-05-22T15:26:52.277 回答