第9章 インプットデバイス

この章では、インプットデバイスのイベントの取得方法について説明します。Armadillo-440液晶モデルでは、タッチスクリーンとボタンがインプットデバイスとして実装されています。タッチスクリーンとボタンドライバーの仕様は、「Armadillo-400シリーズソフトウェアマニュアル」の「ボタン」、「タッチスクリーン」の章を参照してください。

9.1. evtest

evtestコマンドを使用することで、どのようなインプットイベントが発生したか確認することができます。evtestは、図9.1「evtestコマンドフォーマット」のように使用します。

[armadillo ~]# evtest /dev/input/eventX

図9.1 evtestコマンドフォーマット


/dev/input/eventXに指定するデバイスファイルは表9.1「インプットデバイスファイル」を参照してください。

表9.1 インプットデバイスファイル

デバイスファイルデバイス
/dev/input/event0ボタン
/dev/input/event1タッチスクリーン

[警告]

イベントデバイスの番号は、検出された順番に割り振られます。そのため、USB キーボードなど他のインプットデバイスが起動時に検出されると、デバイス番号は変わる可能性があります。

Armadillo-440 液晶モデルのデフォルトユーザーランドでは、xfbdev を起動する際にインプットデバイスのデバイスファイルを固定で指定しています。そのため、起動時に USB キーボード等が接続されていると、タッチスクリーンでの操作ができなくなります。USBキーボードなどを使用する場合は起動後に接続してください。

evtestを終了させる場合は、「Ctrl + C」キーを入力してください

9.2. swmgr

swmgr コマンドを使用することで、ボタン入力に応じて任意のコマンドを実行することができます。

swmgrは、図9.2「swmgrコマンドフォーマット」のように使用します。

[armadillo ~]# swmgr [BUTTON] [LOOP] [COMMAND]

図9.2 swmgrコマンドフォーマット


BUTTONには、イベントを取得したいボタンを指定します。対応するボタンは、表9.2「swmgrに対応するボタン」のとおりです。

表9.2 swmgrに対応するボタン

ボタン説明
sw0SW1
sw1LCD_SW1
sw2LCD_SW2
sw3LCD_SW3

LOOPには、イベントを待つ回数を指定します。0を指定すると無制限になります。

COMMANDには、イベントが発生した時に実行する動作を記述します。

9.3. swmgr使用例

SW1が押されたときに時刻を表示する

[armadillo ~]# swmgr sw0 1 date

図9.3 swmgr使用例1


LCD_SW1が押されたときにLED3を点灯、LCD_SW2が押されたときにはLED3を消灯する

[armadillo ~]# swmgr sw1 0 echo 1 > /sys/class/leds/red/brightness &
[armadillo ~]# swmgr sw2 0 echo 0 > /sys/class/leds/red/brightness &

※終了する場合は次のコマンドを実行します
[armadillo ~]# killall swmgr

図9.4 swmgr使用例2