2

有没有办法在明确指定确切输入设备的情况下使用触摸屏?

让我深入解释...

我的主机有许多输入设备:

$ ls -al /dev/input/
drwxr-xr-x    2 root     root          200 Jul 11 16:09 .
drwxr-xr-x   11 root     root         4580 Jul 10 15:31 ..
crw-rw-rw-    1 root     root      13,  64 Jan  1  1970 event0
crw-rw-rw-    1 root     root      13,  65 Jan  1  1970 event1
crw-rw-rw-    1 root     root      13,  66 Jan  1  1970 event2
crw-rw-rw-    1 root     root      13,  95 Jan  1  1970 event99
crw-rw----    1 root     root      13,  63 Jan  1  1970 mice
crw-rw----    1 root     root      10, 223 Jan  1  1970 uinput

这些输入设备之一(通常是 event2)是通过 USB 连接的触摸屏。我的问题是...

  • eventX 设备可能并不总是 event2
  • 触摸屏可能会被拔出并再次插入(这将导致不同的 eventX 设备)并且触摸屏应该可以再次工作而无需重新启动应用程序
  • USB 主机可能偶尔会进行重置(由于其他问题),从而导致 USB 断开连接和 USB 重新连接触摸屏

该应用程序是一个以全屏模式运行的 Qt 嵌入式 4.7 应用程序,使用tslib作为触摸屏驱动程序。

对于另一个有类似问题的项目,我已经编写了一个小守护程序(我称之为“eventbundler”),它从所有 /dev/input/eventX 设备读取数据并将数据发送到命名管道(FIFO)。但是,tslib 不会接受该 fifo 作为输入设备 ( QWS_MOUSE_PROTO=tslib:/dev/input/eventbundler-mouse) - 可能是因为查询设备功能的 IOCTL 不起作用(它显示为“ selected device is not a touchscreen I understand”)。

无论如何,我需要的是tslib应该以某种方式自动检测触摸屏设备并从中读取,即使已经拔掉了一会儿。

有什么提示吗?

如果有任何帮助,我愿意更改 Qt 源代码。

4

1 回答 1

1

这不是解决方案,但是tslib有一个问题非常模糊地描述了您的问题。如果在那里讨论有关路径选择的想法,它至少有一天可能有助于解决这个问题。

于 2016-11-30T10:11:32.107 回答