python - python evdev 写入/注入输入设备的速度是否有限制?
问题描述
我有一个使用 evdev 模拟游戏手柄按钮按下的 python 程序。使用的设备是从xbox usb 游戏手柄“克隆”的,通过使用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, 0)
sleep(0.01)
ui.write(evdev.ecodes.EV_KEY, evdev.ecodes.BTN_A, 0)
ui.write(evdev.ecodes.EV_SYN, 0, 0)
sleep(0.01)
如果我完全删除sleep
's,似乎根本不会注册任何印刷机。尽管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)?
一个可能相关的问题:
解决方案
推荐阅读
- github - 如何确保我的安装脚本安装的二进制文件是可执行的?
- elm - 过滤掉列表中的索引
- ibm-cloud - IBM Watson Speech-to-Text 身份验证凭证
- python - 从两组的交集中选择数据帧的子集
- matlab - 确定 MATLAB fitglm() 模型拟合是否收敛
- c# - 在 Cosmos DB 中向后分页
- python - 为什么这个数组中的所有元素,用python编程,都包含相同的字符串?
- c++ - 用 C++17 编译 Eigen 需要 _SILENCE_CXX17_NEGATORS_DEPRECATION_WARNING 定义
- javascript - 选择所有具有精确 attr 值和值的元素,想要返回 true 或 false JQUERY
- r - 像 R 的 is.na 函数一样在 Julia 中查找缺失值