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



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

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



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



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



  • タッチパネルを使用するにはオプションで指定が必要です。
    タッチパネルの種類によりますが、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を取得して正規化することを指しています。



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

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


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

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



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

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



  • 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のアプリを動作させタップすると
    端の方で反応はありますが、中央部では反応ありません。
    また、反応があっても逆側が反応します。

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

    よろしくお願いします。



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

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

    @export QT_QPA_EVDEV_DEBUG=1@

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



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


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.