无法使用 python-uinput 将触摸事件写入 uinput



我正在尝试编写触摸事件。我正在使用相机跟踪手,所以我需要两个指针,我需要显示它们。

这是我尝试过的,但没有任何作用:

import uinput
import time
device = uinput.Device([
        uinput.BTN_TOUCH,
        uinput.BTN_TOOL_PEN,
        # uinput.INPUT_PROP_POINTER,  # This property doesn't exist... what is the alternative?
        uinput.ABS_X,
        uinput.ABS_Y,
        ])
time.sleep(1)
device.emit(uinput.ABS_X, 5)
device.emit(uinput.ABS_Y, 5)
device.emit(uinput.BTN_TOUCH, 1)
for i in range(20):
    time.sleep(0.01)
    device.emit(uinput.ABS_Y, 5 * i)
device.emit(uinput.BTN_TOUCH, 0)

但是,使用鼠标作品:

import uinput
import time
device = uinput.Device([
        uinput.BTN_LEFT,
        uinput.BTN_RIGHT,
        uinput.REL_X,
        uinput.REL_Y,
        ])
time.sleep(1)
for i in range(20):
    time.sleep(0.01)
    device.emit(uinput.REL_Y, 5)

,但我需要绝对而不是相对定位。

我有可能看到终端的事件进行调试吗?

我希望能够有2个指针,绝对定位,触摸/单击,悬停(btn_tool_pen(,我的目的是允许拖动/滚动。关于我应该使用哪些事件以及一个简单的工作示例的任何指导都很棒!

我无法使evdev工作,但也欢迎答案。

我假设您正在某个地方的服务器中消费这些设备事件?x11?删除uinput.BTN_TOOL_PEN并为每个估算符定义范围:

    uinput.BTN_TOUCH,
    uinput.ABS_X + (0, 2**24-1, 0, 0),
    uinput.ABS_Y + (0, 2**24-1, 0, 0),
    uinput.ABS_PRESSURE + (0, 255, 0, 0),

如果您仍然有问题,请密切注意Xorg日志文件。

最新更新