如何解决python evdev能多快地写入/注入到输入设备是否有限制?
我有一个使用evdev模拟游戏手柄按钮按下情况的python程序。通过使用ui = evdev.UInput.from_device(...)
但是由于某些原因,有时印刷机可能不一致。
以下是我用来模拟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 举报,一经查实,本站将立刻删除。