HID主条目collection和end collection详解
- 与数据无关的collection和end collection
collection item标识两个或多个数据(input、output或feature)之间的关系。例如,鼠标可以描述为两到四个数据(x、y、按钮 1、按钮 2)的collection。 当 Collection 项打开一个数据集合时,End Collection 项关闭一个集合.
physical collection - 0
物理集合用于表示在一个几何点收集的数据点的一组数据项。 这对于可能需要将测量或感测数据集与单个点相关联的感测设备很有用。 它并不表示一组数据值来自一个设备,例如键盘。 在报告多个传感器位置的设备的情况下,物理集合用于显示哪些数据来自每个单独的传感器。
Application collection - 1
应用程序可能熟悉的一组主要项目。 它还可以用于识别单个设备中服务于不同目的的项目组。 常见的例子是键盘或鼠标。 带有集成指针设备的键盘可以定义为两个不同的应用程序集合。 数据报告通常(但不一定)与应用程序集合相关联(每个应用程序至少有一个报告 ID)。
Logical collection - 2
当一组数据项形成复合数据结构时,将使用逻辑集合。 一个例子是数据缓冲区和数据字节数之间的关联。 集合建立计数和缓冲区之间的链接
Report collection -3
定义一个包含报表中所有字段的逻辑集合。 此集合中将包含唯一的报告 ID。 应用程序可以轻松确定设备是否支持某个功能。 请注意,可以为报告集合声明任何有效的报告 ID 值。
Name dArray collection - 4
命名数组是包含选择器用法数组的逻辑集合。 对于给定的功能,类似设备使用的选择器集可能会有所不同。 在记录硬件寄存器时,字段的命名是常见的做法。 要确定设备是否支持特定功能(如状态),应用程序可能必须先查询几个已知的状态选择器用法,然后才能确定设备是否支持状态。 Named Array 用法允许对包含选择器的 Array 字段进行命名,因此应用程序只需查询 Status 用法即可确定设备支持状态信息。
Usage Switch collection - 5
Usage Switch 是一个逻辑集合,用于修改它所包含的用法的含义。 此集合类型向应用程序指示在此集合中找到的用法必须是特殊情况。 例如,不是在 LED 页面上为每个可能的功能声明用法,而是可以将指标用法应用于 Usage Switch 集合,并且该集合中定义的标准用法现在可以识别为函数的指标,而不是函数本身 . 请注意,此集合类型不用于标记 Ordinal 集合,为此使用逻辑集合类型。
Usage Modifier collection - 6
修改附加到包含集合的用法的含义。 用法通常为控件定义单一操作模式。 使用修饰符允许扩展控件的操作模式。 例如,LED 通常是打开或关闭的。 对于特定状态,设备可能需要一种通用方法来闪烁或选择标准 LED 的颜色。 将 LED 用法附加到 Usage Modifier 集合将向应用程序表明该用法支持新的操作模式。
0x07-0x7f
保留,为将来扩展
0x80-0xff
厂商自定义集合
- Collection 项和 End Collection 项之间的所有 Main 项都包含在集合中。 集合可能包含其他嵌套集合。
- 集合项不生成数据。 但是,Usage 项标签必须与任何集合(例如鼠标或油门)相关联。 集合项可以嵌套,并且它们始终是可选的,除了顶级应用程序集合。
- 如果遇到未知的供应商定义的集合类型,则应用程序必须忽略该集合中声明的所有主要项。 请注意,在该集合中声明的全局项将影响状态表。
- 如果未知用法附加到已知集合类型,则应忽略该集合的内容。 请注意,在该集合中声明的全局项将影响状态表。
- 字符串和物理索引以及定界符可能与集合相关联。