gpt4 book ai didi

java - 从原始字节获取 EVDEV 事件代码?

转载 作者:太空宇宙 更新时间:2023-11-04 11:10:23 25 4
gpt4 key购买 nike

在之前的question ,我询问了如何解释/dev/input/mice 中的事件字节。现在意识到/dev/input/mice 没有提供我需要的信息,因为我正在使用带有 stmpe-ts 驱动程序的触摸屏。它设置在 EVDEV 节点/dev/input/event2 下,使用我构建的个人程序,我可以从该文件中获取必要的字节。我唯一的问题是将其转化为事件代码。使用 evtest,我得到了这个输出:

    Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "stmpe-ts"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 2486
Min 0
Max 4095
Event code 1 (ABS_Y)
Value 1299
Min 0
Max 4095
Event code 24 (ABS_PRESSURE)
Value 0
Min 0
Max 255
Properties:
Testing ... (interrupt to exit)

我需要那些事件代码,来自直接从/dev/input/event2 读取的原始数据。这是如下:

236 21 100 83 63 223 11 0 3 0 0 0 124 8 0 0 236 21 100 83 72 223 11 0 3 0 1 0 237 7 
0 0 236 21 100 83 76 223 11 0 3 0 24 0 60 0 0 0 236 21 100 83 80 223 11 0 1 0 74
1 1 0 0 0 236 21 100 83 84 223 11 0 0 0 0 0 0 0 0 0 236 21 100 83 251 247 11 0 3 0 0 0
123 8 0 0 236 21 100 83 6 248 11 0 3 0 1 0 242 7 0 0 236 21 100 83 10 248 11 0 3 0 24
0 142 0 0 0 236 21 100 83 16 248 11 0 0 0 0 0 0 0 0 0 236 21 100 83 137 16 12 0 3 0 0
0 121 8 0 0 236 21 100 83 147 16 12 0 3 0 1 0 7 8 0 0 236 21 100 83 150 16 12 0 3 0 24
0 163 0 0 0 236 21 100 83 156 16 12 0 0 0 0 0 0 0 0 0

这甚至可以做到吗?如果是这样,有人可以帮我吗? (此外,我已经确定每 16 个字节左右出现一个模式,我还确定 236 和 237 是字节,说明该事件是触摸事件,236 是触摸而不点击,237 是点击触摸)

最佳答案

evdev节点的输出是一系列struct input_event,定义在linux/input.h中。

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

因此,您需要做的就是读入这些结构的数组,然后根据需要访问每个类型/代码。不知道如何在 Java 中执行此操作,但可能并不难。

顺便说一句,evtest 是免费软件,因此您可以查看代码并了解它的作用。还要看看 libevdev,它是麻省理工学院的许可证,所以你不会因为看它而被“污染”。 http://www.freedesktop.org/wiki/Software/libevdev/

关于java - 从原始字节获取 EVDEV 事件代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23480741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com