前記事でタッチパネルのキャリブレーションについて書いたので、今回はいよいよタッチパネル上に配置したキーを拾います。
上の写真は、この記事で配置したキーで入力した番号を表示した様子を示しています。通常、このようにタッチパネル上に配置されたキーを拾うためには、次のような手順が必要となります。
FT800では描画されるオブジェクトに対してTAGという属性を与えることができます。そして、スクリーンがタッチされた際には、タッチされた座標に対応するオブジェクトを求めて、そのTAG属性値をREG_TOUCH_TAGに入れてくれます。したがって、キーに対応する値をTAG属性値として与えておけば、レジスタを見るだけでタッチされたキーの値を求めることができるのです。
さらに便利なことに、CMD_KEYSを使ってキーを描画した場合には、自動的に個々のキーに与えた1文字のラベルの値をTAG属性値として設定してくれちゃいます。CMD_BUTTONを使ってボタンを描画した場合には、事前にTAGコマンドを使って指定しておいたTAG属性値が設定されます。TAGの値は1~255の範囲となっており、0はタッチされていない状態を表現するために予約されています。
このように、キーやボタン処理のように、オブジェクトに与えた論理的な値を知りたい場合には、FT800のREG_TOUCH_TAGを調べるだけで良いということになります。例えばCMD_KEYSを使って描画した'1'をタッチすればREG_TOUCH_TAGの値は0x31になります。そして、指を離せばREG_TOUCH_TAGの値は0x00に変化します。
そして、ボタン処理をさらに簡単にしてくれるのが、割り込みです。REG_TOUCH_TAGの値が変化した場合に割り込みをかけることができます!! 結論として、FT800では
上の写真は、この記事で配置したキーで入力した番号を表示した様子を示しています。通常、このようにタッチパネル上に配置されたキーを拾うためには、次のような手順が必要となります。
- タッチされた座標を求める
- スクリーン上の座標に変換する
- その座標に対応するオブジェクトを求める
- オブジェクトに対応するキーの値を求める
FT800では描画されるオブジェクトに対してTAGという属性を与えることができます。そして、スクリーンがタッチされた際には、タッチされた座標に対応するオブジェクトを求めて、そのTAG属性値をREG_TOUCH_TAGに入れてくれます。したがって、キーに対応する値をTAG属性値として与えておけば、レジスタを見るだけでタッチされたキーの値を求めることができるのです。
さらに便利なことに、CMD_KEYSを使ってキーを描画した場合には、自動的に個々のキーに与えた1文字のラベルの値をTAG属性値として設定してくれちゃいます。CMD_BUTTONを使ってボタンを描画した場合には、事前にTAGコマンドを使って指定しておいたTAG属性値が設定されます。TAGの値は1~255の範囲となっており、0はタッチされていない状態を表現するために予約されています。
このように、キーやボタン処理のように、オブジェクトに与えた論理的な値を知りたい場合には、FT800のREG_TOUCH_TAGを調べるだけで良いということになります。例えばCMD_KEYSを使って描画した'1'をタッチすればREG_TOUCH_TAGの値は0x31になります。そして、指を離せばREG_TOUCH_TAGの値は0x00に変化します。
そして、ボタン処理をさらに簡単にしてくれるのが、割り込みです。REG_TOUCH_TAGの値が変化した場合に割り込みをかけることができます!! 結論として、FT800では
- TAG変化割り込みがかかるのを待つ
- REG_TOUCH_TAGを読む