tslib:从所有合适的输入设备读取?

时间:2012-07-11 16:45:06

标签: qt touchscreen

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

让我深入解释......

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

$ 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 embedded 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源代码。

1 个答案:

答案 0 :(得分:1)

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