大家好,谢谢大家的阅读。
我正在尝试使用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但是..。我不能用插槽。我正在试着捏(去焦耳)。
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多点触摸协议,应该是这样的。我看不出那个问题是从哪里来的。时间依赖吗?由于我毫不迟延地发送这些指令,它们之间可能需要一段时间。
有人知道如何按照协议B模拟多点触摸事件吗?什么顺序应该起作用?
注意:这些接触是在Android设备上执行的,在用Android制作的C可执行文件中执行。
发布于 2016-05-25 12:01:46
所以我终于找到了答案。上面的顺序是正确的,但是:
戈蒂埃
https://stackoverflow.com/questions/37419311
复制相似问题