皆さん、読んでいただきありがとうございます。uinputでマルチタッチイベントをシミュレート
私はuinput
インターフェイスを使用していくつかのタッチを実行しようとしています。結局、これらのデータはシリアル接続からUARTを通して解釈されます。
私はuinputを開いたり、閉じることができ、モノタッチでうまく動作します。
EV_KEY BTN_TOUCH 1
EV_ABS ABS_X 400
EV_ABS ABS_Y 400
EV_SYN SYN_REPORT 0
がタッチします。スワイプ、ダブルタップ、ABS_XとABS_Yで正常に動作します。
次に、私はマルチタッチサポートを実装したいので、ABS_MT_POSITION_X、ABS_MT_POSITION_Y、ABS_MT_TRACKING_ID、ABS_MT_SLOTを実装しました。
私はタッチとスワイプを実行するために管理:
EV_ABS ABS_MT_TRACKING_ID 20
EV_KEY BTN_TOUCH 1
EV_ABS ABS_MT_POSITION_X 425
EV_ABS ABS_MT_POSITION_Y 400
EV_SYN SYN_REPORT 0
をしかし...私はスロットを使用することはできません。私はピンチ(dezoomer)を実行しようとしています。
EV_ABS ABS_MT_SLOT 0
EV_ABS ABS_MT_TRACKING_ID 20
EV_KEY BTN_TOUCH 1
EV_ABS ABS_MT_POSITION_X 425
EV_ABS ABS_MT_POSITION_Y 400
EV_ABS ABS_MT_SLOT 1
EV_ABS ABS_MT_TRACKING_ID 21
EV_ABS ABS_MT_POSITION_X 650
EV_ABS ABS_MT_POSITION_Y 400
EV_SYN SYN_REPORT 0
EV_ABS ABS_MT_SLOT 0
EV_ABS ABS_MT_POSITION_X 450
EV_ABS ABS_MT_POSITION_Y 400
EV_ABS ABS_MT_SLOT 1
EV_ABS ABS_MT_POSITION_X 550
EV_ABS ABS_MT_POSITION_Y 400
EV_ABS ABS_MT_SLOT 0
EV_ABS ABS_MT_TRACKING_ID -1
EV_ABS ABS_MT_SLOT 1
EV_ABS ABS_MT_TRACKING_ID -1
EV_KEY BTN_TOUCH 0
EV_SYN SYN_REPORT 0
このシーケンスは機能しませんが、Linux Multi Touch Protocolに従う必要があります。私はその問題がどこから来ているのか分かりません。それは時間依存ですか?私はこれらの指示をそれらの間に遅れずに送るので、それの間にある程度の時間が必要かもしれません。
プロトコルBの後にマルチタッチイベントをシミュレートする方法を知っている人はいますか?どんなシーケンスがうまくいくのですか?
NB:これらのタッチはAndroidデバイスで、Android NDKで作成されたC実行ファイルで実行されます。