keyboard -/dev/输入键盘格式

标签 keyboard input-devices

我一直在尝试从键盘设备捕获输入:

/dev/input/by-path/platform-i8042-serio-0-event-kbd 

对我来说,我想知道它返回的内容是否有任何规范,使用

od -tx1 /dev/input/by-path/platform-i8042-serio-0-event-kbd 

听。我很好奇主要是因为某些按键的行为;元、箭头键、数字键盘正斜杠。

0520300 ac 9d 86 4c 6b 0f 04 00 04 00  04  00 (db) 00 00 00
0520320 ac 9d 86 4c 8c 0f 04 00 01 00 (7d) 00  00 00 00 00
0520340 ac 9d 86 4c 95 0f 04 00 00 00  00  00  00 00 00 00

到目前为止,我查看过的每个其他键都将括号中的两个字节作为匹配值,这些有什么特殊的原因吗?

最佳答案

/dev/input/by-path/platform-i8042-serio-0-event-kbd 只是 /dev/input/eventX 事件设备的符号链接(symbolic link)文件。可以从事件设备文件中读取数据:

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

/usr/include/linux/input.h中定义。

type 的可能值以 EV_ 为前缀。 code 的可能值取决于type。它们的前缀为 KEY_BTN_REL_ 等。 value 的可能值取决于 typecode。例如,对于按键事件 value 等于 1,对于按键释放事件 0

您可以通过以下方式检查事件数据:

evtest /dev/input/eventX

其中 X 是键盘(或任何其他事件设备)的事件设备编号。按下或释放一个按键通常会发出三个事件(EV_MSCEV_KEYEV_SYN)。

关于keyboard -/dev/输入键盘格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3662368/

相关文章:

java - 获取键盘输入并用于变量事件

linux - 使用更多修饰符重新映射键盘

ios - 自定义键盘扩展名的外观始终是深色的吗?

python - 如何选择要录制的设备(Python PyAudio)

linux - 您如何获得隐藏设备的所有权?

ubuntu - SDL2 看不到操纵杆,但操作系统可以

javascript - 触发键盘事件,webkit 键盘事件不会触发

安卓 : How to add child view on top of Softkeyboard for Emoji?

JavaScript:检查鼠标按钮是否按下?

windows - 如何修改鼠标输入 WDF 过滤器驱动程序 (Moufiltr) 以适用于 USB 鼠标?