【驱动】TP电容屏驱动—3.TP报点协议A/B 之 1.USB多点触控上报协议详解(示例)

文档摘录:

android4.0触摸屏(touchscreen)以及屏幕按键驱动解析:https://blog.csdn.net/u012719256/article/details/53584060

内核中的多点触摸协议文档 Multi-touch (MT) Protocol:https://blog.csdn.net/u012719256/article/details/53607499

linux input子系统 — TP A/B(Slot)协议:https://blog.csdn.net/u012719256/article/details/53609906


USB多点触控上报协议详解
USB HID-compliant mouse报点协议解析

本篇文章主要是对usb 多点触控给Windows上报点位时上报的数据解析。至于usb怎样枚举出一个多点触控在这不做解释,网上有很多教程。
1、当你的usb hid设备枚举正常后,你可以使用bus hound看到你的usb 设备里有一个新增的HID-compliant mouse接口。可以通过usbTreeView查看对应的端点,我这里的该接口对应的是端点1。所以上报触摸点时,通过端点1上报就好。
【驱动】TP电容屏驱动—3.TP报点协议A/B 之 1.USB多点触控上报协议详解(示例)_第1张图片

 

 2、windows要知道你的触摸状态,必须要知道你有几个点上报,每个点的状态(按下还是松开),每个点对应的id(也就是对应的手指id),每个点的坐标。由上面的端点描述可以看到bInterval = 0x01(1ms),也就是说windows这边时1ms找我们要一次触摸点的坐标,当我们有坐标点更新时就上传坐标点,当没有触摸时,直接NAK就好。

3、数据报文来了。举个例子
【驱动】TP电容屏驱动—3.TP报点协议A/B 之 1.USB多点触控上报协议详解(示例)_第2张图片

 

 上面的报文(0x02,0x07,0x00,0x00,0x04,0x00,0x04,0x06,0x01,0x00,0x08,0x00,0x08,0x02)的意思就是0号手指被按下,其坐标点为(1024,1024),1号手指被释放,释放的位置坐标点为(2048,2048)。依此类推,如果需要报第三点、第四点等按照上面的格式添加数据就可以了。

————————————————
版权声明:本文为CSDN博主「wxc_312」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_28738985/article/details/104026994


 

你可能感兴趣的:(【驱动】TP电容屏驱动—3.TP报点协议A/B 之 1.USB多点触控上报协议详解(示例))