2013-05-22 15 views
16

Czy ktoś może mi powiedzieć, jakie są właściwości typów danych używanych przez strukturę input_event?Opis struktury input_event (z linux/input.h)

jest zdefiniowany następująco w pliku input.h:

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

ale nie istnieją żadne inne opisy! Nawet googlowanie nie dało mi nic ciekawego.

Jedyne, co wiem, to że time podaje sekundy lub milisekundy z epoki, a value podaje kod naciśniętego przycisku. Ale nawet wartość nieruchomości value nie jest dla mnie jasna. W moim programie każde naciśnięcie klawisza generuje sześć zdarzeń. Następujące zdarzenia są reakcja na naciśnięcie klawisza 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 te są dla a literę:

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 

chciałabym dekodować wartości rzeczywistej listu, ale nie rozumiem sensu właściwości.

Proszę pomóc!

Odpowiedz

33

Numer struct input_event jest zdefiniowany między innymi w include/linux/input.h.


Od interfejsu 5. EventDocumentation/input/input.txt w jądrze Linuksa (i zmodyfikowana w celu zapewnienia poprawnych nazw plików nagłówek):

  • time jest datownik, zwraca czas, w którym zdarzenie stało się.

  • type jest na przykład EV_REL względnego momentu, EV_KEY przez naciśnięcie klawisza lub wydaniu. Więcej typów jest zdefiniowanych w include/linux/input-event-codes.h.

  • code jest kod zdarzenia, na przykład REL_X lub KEY_BACKSPACE znowu się pełna lista jest w include/linux/input-event-codes.h.

  • value jest wartością, którą niesie wydarzenie. Albo względna zmiana dla EV_REL, nowa wartość bezwzględna dla EV_ABS (...) joysticki lub 0 dla EV_KEY dla wydaniu, 1 za naciśnięciem klawisza i 2 dla autopowtarzaniu.

Aby uzyskać przewodniki i przykładowy kod, wyszukaj w Internecie numer "linux kernel" "input subsystem".