HID 触摸屏的报表描述符

欢迎加入官方QQ群:952873936或联系站长进行技术交流。
0x05, 0x0d,                         // USAGE_PAGE (Digitizers)          0 
    0x09, 0x04,                         // USAGE (Touch Screen)             2 
    0xa1, 0x01,                         // COLLECTION (Application)         4 
    0x85, 0xaa,                          //   REPORT_ID (Touch)              6 
    0x09, 0x20,                         //   USAGE (Stylus)                 8 
    0xa1, 0x00,                         //   COLLECTION (Physical)          10 
    0x09, 0x42,                         //     USAGE (Tip Switch)           12 
    0x15, 0x00,                         //     LOGICAL_MINIMUM (0)          14 
    0x25, 0x01,                         //     LOGICAL_MAXIMUM (1)          16 
    0x75, 0x01,                         //     REPORT_SIZE (1)              18 
    0x95, 0x01,                         //     REPORT_COUNT (1)             20 
    0x81, 0x02,                         //     INPUT (Data,Var,Abs)         22 
    0x95, 0x03,                         //     REPORT_COUNT (3)             24 
    0x81, 0x03,                         //     INPUT (Cnst,Ary,Abs)         26 
    0x09, 0x32,                         //     USAGE (In Range)             28 
    0x09, 0x37,                         //     USAGE (Data Valid-Finger)    30 
    0x95, 0x02,                         //     REPORT_COUNT (2)             32 
    0x81, 0x02,                         //     INPUT (Data,Var,Abs)         34 
    0x95, 0x0a,                         //     REPORT_COUNT (10)            36 
    0x81, 0x03,                         //     INPUT (Cnst,Ary,Abs)         38 
    0x05, 0x01,                         //     USAGE_PAGE (Generic Desktop) 40 
    0x26, 0xff, 0x7f,                   //     LOGICAL_MAXIMUM (32767)      42 
    0x75, 0x10,                         //     REPORT_SIZE (16)             45 
    0x95, 0x01,                         //     REPORT_COUNT (1)             47 
    0xa4,                               //     PUSH                         49 
    0x55, 0x0d,                         //     UNIT_EXPONENT (-3)           50 
    0x65, 0x00,                         //     UNIT (None)                  52 
    0x09, 0x30,                         //     USAGE (X)                    54 
    0x35, 0x00,                         //     PHYSICAL_MINIMUM (0)         56 
    0x46, 0x00, 0x00,                   //     PHYSICAL_MAXIMUM (0)         58 
    0x81, 0x02,                         //     INPUT (Data,Var,Abs)         61 
    0x09, 0x31,                         //     USAGE (Y)                    63 
    0x46, 0x00, 0x00,                   //     PHYSICAL_MAXIMUM (0)         65 
    0x81, 0x02,                         //     INPUT (Data,Var,Abs)         68 
    0xb4,                               //     POP                          70 
    0x05, 0x0d,                         //     USAGE PAGE (Digitizers)      71 
    0x09, 0x60,                         //     USAGE (Width)                73 
    0x09, 0x61,                         //     USAGE (Height)               75 
    0x95, 0x02,                         //     REPORT_COUNT (2)             77 
    0x81, 0x02,                         //     INPUT (Data,Var,Abs)         79 
    0x95, 0x01,                         //     REPORT_COUNT (1)             81 
    0x81, 0x03,                         //     INPUT (Cnst,Ary,Abs)         83/85 
    0xc0,                               //   END_COLLECTION                 0/1 
    0xc0 ,                              // END_COLLECTION                   0/1

touch digitizers appear through HID as a touch digitizer (page 0x0D, usage 0x04).

The following usages are required:

X (page 0x01, usage 0x30) and Y (page 0x01, usage 0x31).

Tip switch (page 0x0D, usage 0x42).

In-range (page 0x0D, usage 0x32).

Use tip switch to indicate finger contact and liftoff from the digitizer surface, similar to how a pen reports contact with the digitizer.

If the device supports z-axis detection, it reports in-range correctly. If the device does not support z-axis detection, the driver reports packets with in-range and tip switch set when a finger comes in contact with the digitizer.

Note that some earlier versions of Windows have different guidelines for how touch digitizer drivers should handle in-range reporting. The Windows XP Tablet PC OEM Preinstallation Kit (OPK) includes information about how to implement a touch digitizer driver for Windows XP. For more information, contact your Microsoft technical account manager.

The following usages are optional, but you should implement them if the digitizer hardware supports them:

Confidence (page 0x0D, usage 0x47).

Width and height (page 0x0D, usages 0x48 and 0x49).

上面是报告描述符,

上面报告描述符要发12字节给电脑。

我发给的数据为:

data[0]=0x21,
data[1]=0x00,
data[2]=0x00,
data[3]=0x01,
data[4]=0x00,
data[5]=0x01,
data[6]=0x10,
data[7]=0x00,
data[8]=0x10,
data[9]=0x00,
data[10]=0x00,
data[11]=0x00,

第0个节字data[0],第0位为判断是否触摸位。我置1
第0个节字,每三位为IN Range位,判断是否有z轴。我置0。
第0个节字,每四位为信心位,判断对触摸的确定度,我置1。
第0个节字其它位为常数0。

每1个节字,data[1]。为常数位。我置0。
第2,3节字data[2]=0x00,data[3]=0x01。为X轴,坐标。
第4,5节字data[4]=0x00,data[5]=0x01。为Y轴,坐标。
第6,7节字data[6]=0x10,data[7]=0x00。为触摸宽度。
第8.,9节字data[8]=0x10,data[9]=0x00。为触摸高度。
第10.11节字data[10]=0x00,data[11]=0x00,为常数0

LM:逻辑大,LN:逻辑小,

PM:物理大,PN:物理小,

0 篇笔记 写笔记

HID 枚举系统中所有HID设备信息代码示例
枚举系统中所有HID设备信息代码示例#include#include #include #include #include #i......
HID 设置协议SetProtocol
SetProtocol用于设置ID设备的协议值。对于USB引导设备,该协议是必须对;对于非引导设备,是可选的。详见:USB请求bmRequestType(1):0x21bRequest(1): SetProtocol,值为0bwValue(2):数据为0表示引导协议,为1表示报告协议。wIndex(......
HID 设置报告请求SetReport
SetReport请求用于主机向设备发送报告请求。详见:USB请求bmRequestType(1):0x21bRequest(1): SET_REPORT,值为09.wValue(2):高字节报告类型,低字节为报告ID.01:表示输入报告02: 表示输出报告03: 表示特定报告wIndex(2):接......
HID 触摸屏报表描述符
0x05, 0x0d, // USAGE_PAGE (Digitizers) 0 0x09, 0x04, // USAGE (Touch Screen) ......
HID 简介
 HID(Human Interface Device,人机接口设备)是USB设备中常用的设备类型,是直接与人交互的USB设备,例如键盘、鼠标与游戏杆等。在USB设备中,HID设备的成本较低。另外,HID设备并不一定要有人机交互功能,只要符合HID类别规范的设备都是HID设备。  Wndows操作系......
HID 体系结构
Windows 中的 HID 驱动程序堆栈的体系结构基于名为 hidclass.sys 的类驱动程序。 客户端和传输微型驱动程序从用户模式或内核模式下访问的类驱动程序。HID类驱动程序在系统提供的 HID 类驱动程序是 WDM 功能驱动程序和总线驱动程序 HID 设备安装程序类 (HIDClass)......
HID 报表描述符数字显示实例
USAGE_PAGE (Alphnumeric Display) 05 14USAGE (Alphanumeric Display) 09 01LOGICAL_MINIMUM (0) 15 00 CO......
HID键盘设备数据抓包分析实践
本文使用 Bus Hound 工具对 USB HID 设备数据包进行分析,并结合官方手册及网上文章进行整理。在进行数据分析前,我们先回顾一下USB相关的基础知识。USB描述符USB 主机是通过各种描述符来识别设备的,有设备描述符,接口描述符,端点描述符,字符描述符,报告描述符(HID)等。和普通的U......
USB复合HID设备报告描述符的区分
在USB规范中,设备的功能是通过接口来承载的,在USB规格书中就是接口描述符。对于一般的设备,一般一个接口就是一个功能,这个功能可以是鼠标,键盘或其它设备类型。当然这个只是对USB简易设备而言的,对于一些USB复杂设备如UVC摄像头,UAC音频等是多接口相互配合来实现其功能的,为了整合这么多接口使......
HID 设备描述符关系
HID设备连接到USB主机后,主机通过发送Get_Descriptor请求读取HID设备的描述符,了解描述符对了解USB设备是至关重要的。HID设备的描述符HID设备除了支持USB设备的5种标准描述符之外,还支持HID设备特有的3种描述符。这些描述符是:USB标准描述符:设备描述符、配置描述符、接口......
HID HID描述符
HID描述符的主要作用是用来识别HID通信所使用的额外描述符。下表是HID描述符结构。偏移量字段字节数数值类型说明0bLength1Numeric描述符字节数1bDescriptorType1Constant0x21 = HID描述符2bcdHID2NumericHID规范版本号(BCD)4bCou......
HID 报表描述符远程控制实例
USAGE_PAGE (Consumer Devices) 05 0CUSAGE (Consumer Control) 09 01COLLECTION (Application) A1 01 ......
USB键盘报告描述符数据格式分析
USB键盘的HID报表描述符的内容参见下表。数据的输入端点为中断方式,当有键盘敲击事件时,会上报数据长度为8字节的数据报告。0x05,0x01,// Global Generic Desktop0x09,0x06,// Local KeyBoard 0xA1,0x01,// Main app col......
HID 报表描述符键盘实例
通过下面的报告描述符的定义,我们根据上面的注释可知,包含一个中断输入报表描述符和一个中断输出报告描述符。其中断输入报告描述符用于USB HID键盘中断输入端点,输出报表描述符用于USB HID键盘中断输出端点。USB HID键盘的中断输入报告对于中断输入端点,数据格式定义如下:-BYTE0:该字节......
USB通用父驱动usbccgp.sys的过滤UVC摄像头、UAC麦克风和HID设备硬件ID
激动的心情,无溢言表。。虽然只是一个很简单的东西。。但相于折腾了这么久,还是很开心的了。最近有个需求,功能是这样的:有一个USB复合设备,连接到windows系统中它在windows下的设备树如下:USB Composite Device(usbccgp.sys)UVC CameraUAC ......
作者信息
USB中文网
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!