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が呼び出されるはずです。