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

これらの入力デバイスの 1 つ (通常は event2) は、USB 経由で接続されたタッチスクリーンです。私の問題は...

  • eventX デバイスは常に event2 であるとは限りません
  • タッチスクリーンを取り外して再度接続すると (別の eventX デバイスになります)、タッチスクリーンはアプリケーションを再起動する必要なく再び機能するはずです。
  • USB ホストは時折リセットを行い (他の問題が原因で)、USB が切断され、タッチスクリーンの USB が再接続されることがあります。

このアプリケーションは、タッチスクリーン ドライバーとしてtslibを使用して、フル スクリーン モードで実行される Qt 組み込み 4.7 アプリケーションです。

同様の問題を抱えた別のプロジェクトのために、すべての /dev/input/eventX デバイスからデータを読み取り、そのデータを名前付きパイプ (FIFO) に送信する小さなデーモン (私はそれを「eventbundler」と呼びました) を既に作成しました。ただし、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 に答える