http://eleccelerator.com/tutorial-about-usb-hid-report-descriptors/
1. Item
Report descriptors 是由 item 組合起來(lái)的, item 有多種類型
2. usage_page與 usage
在一個(gè)描述符中,首先要設(shè)置一個(gè) Usage_page, 然后某些的usage才能被設(shè)置. 在官方文檔中鼠標(biāo)的例子中, 首先設(shè)置USAGE_PAGE (Generic Desktop), 然后才能使用 USAGE (Mouse). 當(dāng)設(shè)置了 USAGE_PAGE (Button),然后才能使用USAGE_MINIMUM and USAGE_MAXIMUM指定不同的button,USAGE_PAGE就像一個(gè)命名空間,規(guī)定了其中哪些 USAGE 可以使用
3. collections
Collections用來(lái)組合你的數(shù)據(jù), 相當(dāng)于多個(gè) usage page 的集合,一個(gè)collection并不對(duì)應(yīng) 一條report, 只有 Input, Output, Feature
4. Report ID
被用來(lái)區(qū)分同一終端發(fā)不出的不同的 report, 當(dāng)Report descriptors中有多個(gè)collection時(shí),每一個(gè) collection 前都要加一個(gè)report id用以區(qū)分
5. Logical Minimum 與 Logical Maximum
用來(lái)定義變量范圍, 0~1 可以代表開(kāi)關(guān), -127-128 可以代表坐標(biāo)范圍
6. Usage Minimum 與 Usage Maximum
定義和一個(gè)數(shù)組關(guān)聯(lián)的 Usage 的起始和末尾, 比如
USAGE_PAGE (Button)
USAGE_MINIMUM (1)
USAGE_MAXIMUM (3)
用來(lái)表示三個(gè) button
7. Input闹炉、Output、Feature
8. report size 與 report count
Report size 一個(gè)usage使用幾個(gè)bit
Report count 連續(xù)幾個(gè) usage