微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python evdev能多快地写入/注入到输入设备是否有限制?

如何解决python evdev能多快地写入/注入到输入设备是否有限制?

我有一个使用evdev模拟游戏手柄按钮按下情况的python程序。通过使用ui = evdev.UInput.from_device(...)

,使用的设备是"cloned" from xBox usb游戏手柄

但是由于某些原因,有时印刷机可能不一致。

以下是我用来模拟A按钮点击的功能

def press_A_button():
    ui.write(evdev.ecodes.EV_KEY,evdev.ecodes.BTN_A,1)
    ui.write(evdev.ecodes.EV_SYN,0)
    sleep(0.01)
    ui.write(evdev.ecodes.EV_KEY,0)
    ui.write(evdev.ecodes.EV_SYN,0)
    sleep(0.01)

如果我完全删除sleep,看来根本没有印刷机可以注册。尽管0.01似乎也太快了,导致它似乎不时地没有注册/跳过水龙头。 (我只是使用jstest-gtk观察其行为)

这是我测试功能的方式:

while True:
    try:
        press_A_button()
        # putting a sleep here,e.g a sleep(2),seemingly still doesn't
        # keep it from sometimes missing the tap
    except KeyboardInterrupt:
        ui.close()
        break

那么,有什么方法可以找出应该用来使其始终如一地工作的最佳时机?

还是我的代码可能不是问题,而是其他软件(在本例中为jstest-gtk)的轮询率

一个可能相关问题:

Simulating controller dpad button being held down with Python evdev

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。