Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    [SOLVED] タッチパネルのキャリブレーションについて

    Japanese
    2
    9
    6314
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      chung.k last edited by

      Qt4 には、タッチパネルのキャリブレーションアプリ(mousecalibration example) があるのですが、
      Qt5 には、それにあたる example はあるでしょうか?

      以上、よろしくお願いします。

      1 Reply Last reply Reply Quote 0
      • T
        takumiasaki last edited by

        Qt5 からは付属のドライバが値の範囲を自動的に調整しているため、キャリブレーション用のサンプルがなくなりました。

        1 Reply Last reply Reply Quote 0
        • C
          chung.k last edited by

          アプリを動作させてもタッチパネルからの操作ができないので動作確認が出来ない状況です。
          自動調整するという事は、ボードを起動させるとタッチパネルは使えるはずという事でしょうか?
          現在、使えないのですが、何か考えられる事がありますか?

          1 Reply Last reply Reply Quote 0
          • T
            takumiasaki last edited by

            タッチパネルを使用するにはオプションで指定が必要です。
            タッチパネルの種類によりますが、udev/evdevで扱えるものであればevdevtouchプラグインを使用します。
            ex. -plugin EvdevTouch:/dev/input/event1
            詳細は qtbase/src/plugins/generic/evdevtouch/README を参考にしてください。
            https://qt.gitorious.org/qt/qtbase/source/release:src/plugins/generic/evdevtouch/README

            自動調整とはタッチの範囲をドライバーからmin/maxを取得して正規化することを指しています。

            1 Reply Last reply Reply Quote 0
            • C
              chung.k last edited by

              ありがとうございます。
              README をみましたが、まだ理解できていませんので教えてください。

              ターゲットの/dev に、ディレクトリ/ファイルが何も無いのですが、これが問題ですか?
              また、Qt5 のコンフィグオプションで、-mtdev が必要ですか?


              Glib ................... no
              GTK theme .............. no
              Large File ............. yes
              mtdev .................. no

              以上、よろしくお願いします。

              1 Reply Last reply Reply Quote 0
              • T
                takumiasaki last edited by

                動作中の実機の /dev 以下にファイルがないのであれば何かおかしいです。
                sysroot にないだけであれば問題はないと思います。

                mtdev はタッチパネルのマルチタッチイベントに Linux カーネルが対応している場合には不要です。これが no になっていると言うことは mtdev ライブラリ/開発環境がない事を示します。
                この辺りはどんなタッチパネルを使用しているかや、カーネルのバージョンなどによって必要かどうかが決まりますので、必要かどうかは分かりません。

                1 Reply Last reply Reply Quote 0
                • C
                  chung.k last edited by

                  dev/input にファイルがありました。
                  ~ # ls /dev/input/ -all
                  drwxr-xr-x 2 root root 140 Jan 1 00:00 .
                  drwxr-xr-x 8 root root 3320 Jan 1 00:00 ..
                  crw-rw---- 1 root root 13, 64 Jan 1 1970 event0
                  crw-rw---- 1 root root 13, 65 Jan 1 1970 event1
                  crw-rw---- 1 root root 13, 63 Jan 1 1970 mice
                  crw-rw---- 1 root root 13, 32 Jan 1 1970 mouse0
                  lrwxrwxrwx 1 root root 6 Jan 1 00:00 ts0 -> event0

                  タッチパネルをタップすると下記の3つ(内ts0はevent0のリンク)で反応がありました。
                  ~ # hexdump /dev/input/event0
                  0000000 0c83 0000 41a9 0006 0003 0000 01d3 0000
                  0000010 0c83 0000 41b0 0006 0003 0001 01db 0000
                  ^C
                  ~ # hexdump /dev/input/mouse0
                  0000000 f719 395a fcfe 0008 3900 e0e9 0008 1900
                  0000010 00e1 0129 08ff 0000 8119 197f 1fa8 fe39
                  ^C
                  ~ # hexdump /dev/input/ts0
                  0000000 0cc5 0000 d4da 0001 0003 0000 01d6 0000
                  0000010 0cc5 0000 d4df 0001 0003 0001 01bd 0000

                  カーネルバージョンです。
                  ~ # uname -a
                  Linux ccwmx53js 2.6.35.14 #1 Thu May 29 17:42:48 JST 2014 armv7l GNU/Linux

                  この状態で、Qt5.3.1のアプリを動作させタップすると
                  端の方で反応はありますが、中央部では反応ありません。
                  また、反応があっても逆側が反応します。

                  キャリブレーションが正しくできていないように思いますが、
                  何かお気づきの点はないでしょうか?

                  よろしくお願いします。

                  1 Reply Last reply Reply Quote 0
                  • T
                    takumiasaki last edited by

                    ここしばらくは十分な時間が取れそうにないので簡単に。

                    環境変数 QT_QPA_EVDEV_DEBUG を設定して動かしてログをとってもらえますか。

                    @export QT_QPA_EVDEV_DEBUG=1@

                    タッチパネルをどう認識しているかを表示してくれます。
                    タッチパネルやドライバーによってはカーネルから得られる情報が正しくない場合が有り、その場合はQt側で補正する必要があります。

                    1 Reply Last reply Reply Quote 0
                    • C
                      chung.k last edited by

                      ありがとうございます。
                      やって見ます。

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post