この章では、インプットデバイスのイベントの取得方法について説明します。Armadillo-440液晶モデルでは、タッチスクリーンとボタンがインプットデバイスとして実装されています。タッチスクリーンとボタンドライバーの仕様は、「Armadillo-400シリーズソフトウェアマニュアル」の「ボタン」、「タッチスクリーン」の章を参照してください。
evtestコマンドを使用することで、どのようなインプットイベントが発生したか確認することができます。evtestは、図9.1「evtestコマンドフォーマット」のように使用します。
| |
---|
Armadillo-440 液晶モデルのデフォルトユーザーランドで自動起動する Xfbdevは、evtestコマンドの実行前に 終了させておく必要があります。
[armadillo ~]# killall Xfbdev
|
/dev/input/eventXに指定するデバイスファイルは表9.1「インプットデバイスファイル」を参照してください。
表9.1 インプットデバイスファイル
デバイスファイル | デバイス |
---|
/dev/input/event0 | ボタン |
/dev/input/event1 | タッチスクリーン |
| |
---|
イベントデバイスの番号は、検出された順番に割り振られます。そのため、USB キーボードなど他のインプットデバイスが起動時に検出されると、デバイス番号は変わる可能性があります。
Armadillo-440 液晶モデルのデフォルトユーザーランドでは、xfbdev を起動する際にインプットデバイスのデバイスファイルを固定で指定しています。そのため、起動時に USB キーボード等が接続されていると、タッチスクリーンでの操作ができなくなります。USBキーボードなどを使用する場合は起動後に接続してください。
|
evtestを終了させる場合は、「Ctrl + C」キーを入力してください
swmgr コマンドを使用することで、ボタン入力に応じて任意のコマンドを実行することができます。
swmgrは、図9.2「swmgrコマンドフォーマット」のように使用します。
BUTTONには、イベントを取得したいボタンを指定します。対応するボタンは、表9.2「swmgrに対応するボタン」のとおりです。
表9.2 swmgrに対応するボタン
ボタン | 説明 |
---|
sw0 | SW1 |
sw1 | LCD_SW1 |
sw2 | LCD_SW2 |
sw3 | LCD_SW3 |
LOOPには、イベントを待つ回数を指定します。0を指定すると無制限になります。
COMMANDには、イベントが発生した時に実行する動作を記述します。
SW1が押されたときに時刻を表示する
LCD_SW1が押されたときにLED3を点灯、LCD_SW2が押されたときにはLED3を消灯する