2
大家好,感謝您的閱讀。用輸入模擬多點觸控事件
我正在嘗試使用uinput
界面來執行某些操作。最終,這些數據將通過UART串行連接進行解釋。
我可以打開,關閉等輸入,它可以很好地用於單點觸摸。
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之後的多點觸控事件?什麼序列應該工作?
注意:這些觸摸是在Android設備上執行的,可執行Android NDK。