input_event结构描述(来自linux / input.h)

时间:2013-05-22 15:10:37

标签: c++ c linux input structure

有人可以告诉我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

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

请帮忙!

1 个答案:

答案 0 :(得分:42)

其中struct input_eventinclude/linux/input.h中定义。


来自 5。 Linux内核Documentation/input/input.txt中的事件接口(并进行了修改以提供正确的头文件名):

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

  • type例如EV_REL表示相对时刻,EV_KEY表示按键或 发布。 include/linux/input-event-codes.h中定义了更多类型。

  • code是事件代码,例如REL_XKEY_BACKSPACE,也是完整的 列表位于include/linux/input-event-codes.h

  • value是事件带来的值。要么相对改变 EV_RELEV_ABS(操纵杆......)的绝对新值,或0的{​​{1}} 发布,EV_KEY表示按键,1表示自动重复。

对于指南和示例代码,请对"linux kernel" "input subsystem"进行网络搜索。