Описание структуры input_event (из linux / input.h)

Может кто-нибудь, пожалуйста, скажите мне, каковы свойства типов данных, используемых структурой 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 

и это для письма:

 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 

Я хотел бы декодировать значение для реальной буквы, но я не понимаю смысла свойств.

Пожалуйста помоги!

    Структура struct input_event , среди прочего, определена в include / linux / input.h .


    От 5. Интерфейс событий в ядре Linux Документация / input / input.txt (и изменена, чтобы обеспечить правильные имена файлов заголовков):

    • time – это метка времени, она возвращает время, в которое произошло событие.

    • type – например EV_REL для относительного момента, EV_KEY для нажатия клавиши или отпускания. Другие типы определены в include / linux / input-event-codes.h .

    • code – это code события, например REL_X или KEY_BACKSPACE , снова полный список содержит include / linux / input-event-codes.h .

    • value – значение, которое несет событие. Либо относительное изменение для EV_REL , абсолютное новое значение для EV_ABS (джойстики …), либо 0 для EV_KEY для выпуска, 1 для нажатия клавиши и 2 для автоповтора.

    Для руководств и примера кода выполните поиск в Интернете под "linux kernel" "input subsystem" .