问题描述
我有一个使用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 (将#修改为@)