ブログ

Armadillo-440+Qtで、タクトスイッチ押下イベントを拾う

at_takuya.sasaki
2014年8月4日 0時51分

Armadillo-440+Qtで、タッチパネルイベント以外に、タクトスイッチを押されたイベントを拾う方法です。

Armadillo-440のスイッチは、/dev/input/event0に割り当てられています。
https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_software_manual_ja-1.8.1/ch09.html#sec-buttons

なので、Qtのキーボードデバイスとして、/dev/input/event0を割り当てることで、 比較的簡単に関連付けができそうです。

まずQtのソース側(ヘッダファイル)に、以下のソースを定義します。

#include <QKeyEvent>
 
protected:
    void keyPressEvent(QKeyEvent *event);

cppには、以下のソースを追加します。

void MainWindow::keyPressEvent(QKeyEvent *event)
{
}

こうすることで、Qtがキーボードを押されたことを認識すると、上記keyPressEvent関数が呼び出されます。

Armadilloで実行する際には、以下の環境変数をまずは定義します。

[armadillo]# export QWS_KEYBOAD=/dev/input/event0

こうした後に、Qtのプログラムを実行すると、タクトスイッチ(SW1)を押すと、 上記のkeyPressEventが呼び出されるはずです。