multi-touch-protocol.txt
一 type A
1 检测到2点按下,最小事件序列的上报形式为:
ABS_MT_POSITION_X x[0]ABS_MT_POSITION_Y y[0]
SYN_MT_REPORT
ABS_MT_POSITION_X x[1]
ABS_MT_POSITION_Y y[1]
SYN_MT_REPORT
SYN_REPORT
2 第1个点抬起后的上报序列:
ABS_MT_POSITION_X x[1]ABS_MT_POSITION_Y y[1]
SYN_MT_REPORT
SYN_REPORT
3 第2个点也抬起后的上报序列:
SYN_MT_REPORTSYN_REPORT
总结:一个点按下上报一个SYN_MT_REPORT,多点多个;一个或多点同时按下上报一个SYN_REPORT,多点都抬起对应一个SYN_MT_REPORT和SYN_REPORT。依赖上层算法识别抬起。
二 typeB
1 检测到2点按下,最小事件序列的上报形式为:
ABS_MT_SLOT 0ABS_MT_TRACKING_ID 45
ABS_MT_POSITION_X x[0]
ABS_MT_POSITION_Y y[0]
ABS_MT_SLOT 1
ABS_MT_TRACKING_ID 46
ABS_MT_POSITION_X x[1]
ABS_MT_POSITION_Y y[1]
SYN_REPORT
2 ID=45点x方向移动的上报序列:
ABS_MT_SLOT 0ABS_MT_POSITION_X x[0]
SYN_REPORT

本文详细探讨了Linux输入子系统中处理多点触摸事件的两种协议类型:type A和type B。在type A中,2点按下时会依次上报事件,1个点抬起后也会有特定的上报序列,所有点抬起时则通过SYN_MT_REPORT和SYN_REPORT上报。type B的上报形式包括ID指定点的移动和各slot的抬起序列。这些上报机制依赖于上层算法来识别和处理触摸事件。
最低0.47元/天 解锁文章
675

被折叠的 条评论
为什么被折叠?



