问题标签 [evdev]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
438 浏览

c - Linux 模块编译:未找到 struct evdev member

所以,我正在尝试修改 evdev.c,它是一个事件处理程序驱动程序,用于 linux 上的鼠标等输入设备。

我遇到的问题是,当我尝试编译模块时,出现大量错误,提示找不到 evdev 的成员。

这只是错误的一小部分。

evdev 的结构清楚地存在于我正在编译的 mousedev_dbl.c 文件中。

例如,这是它在第 215 行的使用方式。

什么会导致这些错误?整个文件可以在这里找到:http: //lxr.free-electrons.com/source/drivers/input/evdev.c

0 投票
1 回答
3628 浏览

python - Python evdev detect device unplugged

I'm using the great "evdev" library to listen to a USB barcode reader input and I need to detect if the device suddenly gets unplugged/unresponsive because otherwise the python script reading the loop goes to 100% cpu usage on a single thread and slowly starts to eat all available memory which leads to the entire system crashing after a bit.

The idea is to detect when the device is unplugged and kill the current script leading to supervisor trying to restart it until the device is plugged back in/becomes responsive.

The code I'm using to read the input is as follows:

So how would I go about doing this the proper way?
A way I though that might work would be a second script that's run from cron every 1-5 min that checks if said device is still available, if it's now, grab process id from some file and kill the process that way but the problem with this method is that if the device is unplugged and then plugged back between the checks the "checker" script thinks everything is okay while the main script is slowly crashing - it doesn't re-activate after an "unplugging"

0 投票
2 回答
2296 浏览

python - 使用 python-evdev 向 uinput 发送事件以解决使用掩码键的键绑定问题

简而言之,我正在尝试向我的程序添加一个键绑定,该程序将编辑剪贴板,然后将更改粘贴到您处于​​活动状态的任何窗口中。在 Windows 上,我想我可能可以通过消息传递来做到这一点,但 X 不会像那样使用消息传递,所以为了做到这一点,我只是使用python-evdev向 uinput 发送一个 ctrl+v 事件。当您只运行它时,它运行得相当好,但我需要它在键绑定上运行,在这种情况下是 super+v。问题变成当你发送 ctrl 和 v 事件到 uinput 时,超级掩码仍然处于活动状态,所以它不是发送 ctrl+v 到窗口,而是发送 ctrl+super+v,这实际上并没有做任何事情。这是用于准确解释我在说什么的最少代码:

如果你发布的速度足够快,你实际上可以让它工作,但它非常快,显然对于实际应用程序来说是不可接受的。我试图发布 super 但这会引发一些问题;它不是很通用,它提出了之后要做什么的问题(让它释放?再按一次?如果他们在你释放然后再次按下它之间的时间内释放怎么办?),最重要的是,它没有似乎真的有效。

无论如何,我想问题是,有没有办法解决这个问题?也许一种发送不会与物理键盘结合的按键事件的方法(不太可能)?如果没有,有没有更好的方法让它在 Linux 上通用粘贴?

0 投票
1 回答
1675 浏览

python - [Python][evdev] 鼠标点击后获取光标位置

我有一个问题,我需要捕获来自鼠标的所有事件。浏览网页后,我阅读了有关 evdev 模块的信息并尝试了一下。

我现在有一个脚本,我可以在其中从鼠标中获取所有事件,以防止与其他窗口的其他交互(我最初的问题中的重要点)。有了它,我可以在单击按钮和鼠标移动时读取事件。但是我找不到单击按钮时如何获取光标位置。

我怎么能用evdev做到这一点?如果我不能,还有其他方法吗?

任何帮助将不胜感激。:)

0 投票
1 回答
3262 浏览

python - 如何在 Mac OS 上安装 python-evdev?

有没有办法python-evdev在 Mac OS 上安装库?当我尝试安装它时,Mac 说The linux/input.h header file is missing.(当然)。Mac下可以安装吗?或者你知道其他选择吗?

我有一个读取 Wacom 输入的应用程序,/dev/input/wacom它在 Linux 上运行良好,但我也在尝试在 Mac 下运行它。

0 投票
2 回答
6282 浏览

python - Python evdev 和条码扫描器

我有一个以下代码,用于从条形码扫描仪捕获输入。问题在于我想将整个扫描代码保存在数据库中,但是代码的每个字符都打印在新行上:

我是 python 的新手,所以任何帮助将不胜感激。

0 投票
1 回答
972 浏览

java - 从原始字节获取 EVDEV 事件代码?

在上一个问题中,我询问了如何解释 /dev/input/mice 中的事件字节。现在意识到 /dev/input/mice 没有给我我需要的信息,因为我正在使用使用 stmpe-ts 驱动程序的触摸屏。它设置在 EVDEV 节点 /dev/input/event2 下,使用我构建的个人程序,我可以从该文件中获取必要的字节。我唯一的问题是将其转换为事件代码。使用 evtest,我得到以下输出:

我需要那些事件代码,来自直接从 /dev/input/event2 读取获得的原始数据。如下:

这甚至可能吗?如果是这样,有人可以在这里帮助我吗?(另外,我已经确定每 16 个字节左右出现一个模式,我还确定 236 和 237 是表示事件是触摸事件的字节,236 是没有点击的触摸,237 是有点击的触摸)

0 投票
0 回答
575 浏览

c++ - Qt5:使用 evdev-support 交叉编译静态程序

我正在尝试交叉编译一个简单的程序。在我的计算机上进行本机编译(该程序可以运行)。为我的开发板进行交叉编译时,linuxfb 开箱即用。但是没有生成输入。

这就是 qt 的配置方式:

那是我的 .pro:

我在我的开发板上得到以下输出:

使用 -plugin EvdevXXX 或不使用参数启动程序似乎没有区别。出了什么问题以及如何解决?

0 投票
1 回答
1520 浏览

linux - 为什么 /usr/share/X11/xkb/rules 中的文件 evdev 与 evdev.lst 不匹配?

似乎附带的 evdev 文件实际上不支持 evdev.lst 中列出的一些 setxkbmap 选项。例如,支持 ctrl:nocaps 但不支持 ctrl:swap_lalt_lctl,如下所示

这导致我无法使用缺少的选项,如我之前的问题为什么忽略某些 setxkbmap 选项? 作为一个额外的问题,有什么方法可以让我支持这些缺失的选项?

0 投票
1 回答
3638 浏览

linux - Linux输入设备事件,如何检索初始状态

我正在使用gpio-keys设备驱动程序来处理运行 Linux 的嵌入式设备中的一些按钮。用户空间中的应用程序可以循环打开/dev/input/eventX和读取输入事件。

我的问题是如何获得按钮的初始状态。有一个 ioctl 调用 ( EVIOCGKEY) 可用于此,但是如果我先检查它然后开始读取 from /dev/input/eventX,则无法保证状态在两者之间没有改变。

有什么建议么?