(1)一个产生多个数据域(Report Count>1)的主项目之前有一个以上的【用途】时,每个【用途】与一个数据域依次对应,如果数据域个数(Report Count)超过【用途】的个数,则剩余的数据域都对应于最后一个【用途】。

(2)Usage、Usage Minimum和Usage Maximum项目关系

这3个项目输入Local类型项目。

Usage项目和Global类型的Usage Page项目协同描述项目或集合的功能。

一个报表可以指定一个Usage给许多个Report Count(数据域)   ,或是指定不同的Usage给每一个Report Count(数据域)。如果一个报表项目之前有一个Usage,此Usage应用到该项目的所有数据域(Report Count )。如果一个报表项目之前有一个以上的Usage,每一个Usage应用到一个数据域(Report Count ),Usage与数据域(Report Count )是按顺序结合的。

例如下面报表描述符的一个局部,报表含有2个输入字节,即两个数据域(Report Count = 2),第一个字节的用法是x,第2个字节是y。

Report Size (8)

Report Count (2)

Usage (x)

Usage (y)

Input (Data, Variable, Absolute)

如果一个报表项目之前有一个以上的Usage,而且数据域(Report Count )的数目多于Usage的数目,每一个Usage与一个数据域(Report Count )对应,最后一个Usage则应用到所有剩余的数据域(Report Count )。

例如在下面报表包含16个字节输入数据,第一个字节对应用法x,第2个字节对应用法y,剩余的14个字节对应‘厂商定义’的用法。

Usage (x)

Usage (y)

Usage (Vendor defined)         //厂商定义

Report Size (8)

Report Count (16)

Input (Data, Variable, Absolute)

Usage Minimum和Usage Maximum可以指定一个 Usage给多个数据域(Report Count )或是数组项目。将从Usage Minimum到Usgae Maximun定义的用法顺序对应到多个数据域(Report Count )中。

例如在一个键盘描述符中定义的标准键盘的左、右修饰键的输入项目中,使用一个字节的8位分别输入键盘的左、右Ctrl键、Shift键、Alt键和GUI键,从HID Usage tables文档中的第10节可以查到关于键盘用法的定义,其中上述8个修饰键的用法定义值为224到231。以下是报表描述符的修饰键部分描述。

Usage Page (1)              ; 1 = Generic Desktop Controls

Usage (6)                   ; 6 = Keyboard

Collection (1)              ; 1 = Application

Usage Page (7)              ; 7 = Keyboard/Keypad

Usage Minimum (224)

Usage Maximum (231)

Logical Minimum (0)

Logical Maximum (1)

Report Size (1)

Report Count (8)

Input (Data, Variable, Absolute)

……

(3)Usage Minimum和Usage Maximum 对于Sel和DF的不同之处?

Usage Minimum和Usage Maximum对于Sel表示,Array(数组中的每个值,数据域(Report Count )中的每个值)可以在Usage Minimum和Usage Maximum之间取值,不是一一对应的关系。

Usage Minimum和Usage Maximum对于DF,则表示数据域(Report Count )中的每个个数与Usage Minimum和Usage Maximum中定义的用法一一对应,即一个Report Count对应一个用途(Usage).至于对应规则(1)和(2)中已经详解的阐明了。请拜读!

Usage、Usage Minimum和Usage Maximum项目详解的更多相关文章

  1. eclipse里面构建maven项目详解(转载)

    本文来源于:http://my.oschina.net/u/1540325/blog/548530 eclipse里面构建maven项目详解 1       环境安装及分配 Maven是基于项目对象模 ...

  2. Redis 配置文件 redis.conf 项目详解

    Redis.conf 配置文件详解 # [Redis](http://yijiebuyi.com/category/redis.html) 配置文件 # 当配置中需要配置内存大小时,可以使用 1k, ...

  3. Mac下Intellij IDea发布Web项目详解一

    Mac下Intellij IDea发布Web项目详解一 Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二 Mac下Intellij IDea发布J ...

  4. Mac下Intellij IDea发布Java Web项目详解五 开始测试

    测试前准备工作目录 Mac下Intellij IDea发布Web项目详解一 Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二 Mac下Intell ...

  5. JAVA Eclipse使用Maven构建web项目详解(SSM框架)

    tips: 启动项目后,welcome-file的链接即为测试用例 部署maven web项目 Eclipse使用Maven构建web项目详解 pom.xml添加webapp依赖: <depen ...

  6. 利用Intellij+MAVEN搭建Spring+Mybatis+MySql+SpringMVC项目详解

    http://blog.csdn.net/noaman_wgs/article/details/53893948 利用Intellij+MAVEN搭建Spring+Mybatis+MySql+Spri ...

  7. [转帖](整理)GNU Hurd项目详解

    (整理)GNU Hurd项目详解 http://www.ha97.com/3188.html 发表于: 开源世界 | 作者: 博客教主 标签: GNU,Hurd,详解,项目 Hurd原本是要成为GNU ...

  8. tomcat通过tomcat 安装根目录下的conf-Catalina-localhost目录发布项目详解

    tomcat通过conf-Catalina-localhost目录发布项目详解   Tomcat发布项目的方式大致有三种,但小菜认为通过在tomcat的conf/Catalina/localhost目 ...

  9. Vue.js项目详解

    还是以Blog项目来讲解,最近我本人利用闲暇时间,以博客作为参考学习一些新的技术并尝试之前没有尝试过的思路来玩玩. 技术看似枯燥,但是带有一个目的来学,你会发现还是蛮有趣的. 主要实践的就是前后端分离 ...

随机推荐

  1. Ajax之 beforeSend和complete longind制作

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; min-height: 18.0px } p.p2 { margin: 0 ...

  2. 定时执行程序-Quartz简单实例

    1.加jar包:Quartz自己quartz-1.8.3.jar和依赖包commons-logging.jar  .slf4j-log4j12-1.5.10.jar .slf4j-api-1.5.10 ...

  3. oracle查询和断开用户session

    select sid,serial#,username from v$session where username='user_name';alter system kill session 'sid ...

  4. struts2的配置和使用

    一:配置stuts2的运行环境,把以下的包放到WEB-INF/lib目录下 1,structs2-core-2.1.6.jar       struts的核心库 2,xwork-2.1.2.jar   ...

  5. [Angular 2] Using Two Reducers Together

    Add another reducer: export const SECOND = "SECOND"; export const HOUR = "HOUR"; ...

  6. c# linq的一些运用

    最近在学习xml.linq 网上也找了一些资料都不大全面,因此在这写了一点东西和大家分享,由于本人知识有限,如有错误请指证 可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的 ...

  7. android开发之——混淆编译

    众所周知,android的apk文件是非常容易被反编译的,这样对于开发者来说,辛辛苦苦开发应用被破解是一件很令人懊恼的事情,谷歌也认识到了这一点,所以从2.3之后就为开发者提供了一个代码混淆工具pro ...

  8. 二叉排序树BST代码(JAVA)

        publicclassTest{     publicstaticvoid main(String[] args){         int[] r =newint[]{5,1,3,4,6,7 ...

  9. Bzoj3990 [SDOI2015]排序

    Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 651  Solved: 338 Description 小A有一个1-2^N的排列A[1..2^N], ...

  10. centos redis安装

    对redis不是很了解,先写一个简单的安装过程 系统版本:centos 6.5 redis版本:2.8.23 一.安装依赖 sudo yum install tcl gcc gcc-c++ -y 二. ...