According to the Linux input documentation, section 5, the /dev/input/eventX devices return data as following:
You can use blocking and nonblocking reads, also select() on the /dev/input/eventX devices, and you'll always get a whole number of input events on a read. Their layout is:struct input_event { struct timeval time; unsigned short type; unsigned short code; unsigned int value; };
'time' is the timestamp, it returns the time at which the event happened. Type is for example EV_REL for relative moment, EV_KEY for a keypress or release. More types are defined in include/linux/input.h.'code' is event code, for example REL_X or KEY_BACKSPACE, again a complete list is in include/linux/input.h.'value' is the value the event carries. Either a relative change for EV_REL, absolute new value for EV_ABS (joysticks ...), or 0 for EV_KEY for release, 1 for keypress and 2 for autorepeat.
Event: type 4 (Misc), code 4 (ScanCode), value 458783 [Conveying the event is scancode]
Event: type 1 (Key), code 3 (2), value 1 [key 2 pressed]
Event: type 0 (Sync), code 0 (Sync), value 0 [sync event]
Event: type 4 (Misc), code 4 (ScanCode), value 458783 [conveying the event is scancode]
Event: type 1 (Key), code 3 (2), value 0 [key 2 release]
Event: type 0 (Sync), code 0 (Sync), value 0 [sync event]
In andriod,
Event: type 1 (Key), code 3 (2), value 1 [key 2 pressed]
Event: type 0 (Sync), code 0 (Sync), value 0 [sync event]
Event: type 1 (Key), code 3 (2), value 0 [key 2 release]
Event: type 0 (Sync), code 0 (Sync), value 0 [sync event]
No comments:
Post a Comment