Armadilloフォーラム

Armadillo-640でのタッチパネルでの長押し検出について

t-terasaki

2022年1月24日 9時31分

お世話になります。

Armadillo-640にLCDオプションセット(7インチタッチパネルWVGA液晶)を接続して、
タッチパネルの動作確認を行っていますが、
QTにてタッチパネルの長押しや押しっぱなしが検出できません。QT上でボタンに指を
当てたままにすると、ボタンが押下された後、指を離していないのにボタンの押下が
解除されます。

evtest /dev/input/event0にてタッチパネルの動作を確認しているのですが、
タッチパネルに指をあてると反応はするのですが、指を離したときには何の
反応もしないようです。
evtestのログを添付しますが、タッチパネルに指をあてた際に、タッチした旨が出力されますが、
そこから約100msec程後、タッチパネルから指を離していないのに、タッチが離されたことを
出力しているように見えます。

ここで確認なのですが、Armadillo-640とこのLCDオプションセットでは
元々タッチパネルの長押しや押しっぱなしの動作(指を離した際にリリース検出する)
ができないのでしょうか。
そうでない場合、カーネルコンフィグレーションやLinuxOS上の設定
変更等でそれができるようになるのでしょうか。

使用しているArmadillo-640は購入後、OS等の入れ替えは行っていない状態で
QT5のインストールのみ行っています。
以下、cat /proc/versionで確認したバージョンです。

Linux version 4.14-at28 (atmark@atde8) (gcc version 8.3.0 (Debian 8.3.0-2))
#1 Thu Dec 17 11:47:56 JST 2020

また、カーネルコンフィグレーションのログ(zcat /proc/config.gz > log.txt)も添付します。

以上、お手数をおかけしますが、よろしくお願いいたします。

コメント

at_akihito.irie

2022年1月24日 17時51分

入江です。

> ここで確認なのですが、Armadillo-640とこのLCDオプションセットでは
> 元々タッチパネルの長押しや押しっぱなしの動作(指を離した際にリリース検出する)
> ができないのでしょうか。

技術的には可能かもしれませんが、対応はしておりません。

以下のリンクから、LCDオプションセット(7インチタッチパネルWVGA液晶)に使
用しているノリタケ伊勢電子製GTWV070VRB00Pの詳細仕様書を確認(要登録)す
ると、タッチパネルにはHID側と独自仕様I2Cコマンド側の2つのI2Cスレーブア
ドレスが設定されており、それぞれからイベントが送出されています。

https://www.noritake-itron.jp/products/tft/gt-vp

Armadilloは上記2つのうちのHID側でタッチパネルから来るイベントを読んで
います。

HIDは規格化されており、Linuxカーネル内にドライバが用意されているので、
カーネルコンフィギュレーションを有効にして当該ドライバを使用することで
タッチパネルとして使用できていますが、こちらにはリリースイベントは通知
されません。

独自仕様のI2Cコマンド側はLinuxカーネル内にドライバがありませんが、こち
らにはリリースイベントが通知されるようです。

以上から、リリースのタイミングを知るには独自仕様I2Cコマンド用のドライ
バを作成するか、ユーザーアプリケーションから独自仕様I2Cを読み取るかを
しなければならないようです。

以上です。

> 入江です。
>
> > ここで確認なのですが、Armadillo-640とこのLCDオプションセットでは
> > 元々タッチパネルの長押しや押しっぱなしの動作(指を離した際にリリース検出する)
> > ができないのでしょうか。
>
> 技術的には可能かもしれませんが、対応はしておりません。
>
> 以下のリンクから、LCDオプションセット(7インチタッチパネルWVGA液晶)に使
> 用しているノリタケ伊勢電子製GTWV070VRB00Pの詳細仕様書を確認(要登録)す
> ると、タッチパネルにはHID側と独自仕様I2Cコマンド側の2つのI2Cスレーブア
> ドレスが設定されており、それぞれからイベントが送出されています。
>
> https://www.noritake-itron.jp/products/tft/gt-vp
>
> Armadilloは上記2つのうちのHID側でタッチパネルから来るイベントを読んで
> います。
>
> HIDは規格化されており、Linuxカーネル内にドライバが用意されているので、
> カーネルコンフィギュレーションを有効にして当該ドライバを使用することで
> タッチパネルとして使用できていますが、こちらにはリリースイベントは通知
> されません。
>
> 独自仕様のI2Cコマンド側はLinuxカーネル内にドライバがありませんが、こち
> らにはリリースイベントが通知されるようです。
>
> 以上から、リリースのタイミングを知るには独自仕様I2Cコマンド用のドライ
> バを作成するか、ユーザーアプリケーションから独自仕様I2Cを読み取るかを
> しなければならないようです。
>
> 以上です。
>

ありがとうございます。
ドライバの方でリリース検出ができない旨、承知致しました。

タッチパネルにて、QTのSpinboxでの数値変更等を行う必要があったのですが、
かわりにソフトウェアのテンキーやキーボードを使用することを検討します。