日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从零开始学USB(二十四、USB接口HID类设备(六)_物理描述符)

發布時間:2024/1/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始学USB(二十四、USB接口HID类设备(六)_物理描述符) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

物理描述符也稱作實體描述符。被用來描述設備的行為特性。

物理描述符是一種數據結構,它提供有關激活控件或控件的人體特定部分的信息。
例如,物理描述符可能指示右手拇指用于激活按鈕5.應用程序可以使用此信息將功能分配給設備的控件。

物理描述符完全是可選的。 它們增加了復雜性,并且對大多數設備提供的回報很少。 但是,某些設備,特別是那些具有大量相同控件的設備(例如按鈕)會發現物理描述符可以幫助不同的應用程序以更一致的方式為這些控件分配功能。?

類似的物理描述符被分組。 報表描述符中包含的指示符索引項目將項目(或控件)映射到物理描述符集合中包含的特定物理描述符(以下統稱為描述符集合)。
每個描述符集由一個短標題和一個或多個物理描述符組成。 標題定義了偏移(描述符集是針對右手還是左手用戶)和集合的首選項。 對于特定偏置,供應商可以定義備用物理描述符(例如,慣用右手的用戶可能能夠以多種方式保持設備,因此重新映射觸摸各個項目的手指)。

每個物理描述符包含以下三個字段:

  • Designator(指示符):識別影響項目的實際身體部位 - 例如手。
  • Qualifier(限定符):進一步定義指示符 - 例如,右手或左手。
  • Effort(努力值):量化用戶必須用于實現項目的努力的價值。

?

如果多個項目標識相同的指定符/限定符組合,則可以使用“Effort”值來解析函數的分配。 當手處于“靜止”位置時,努力值0將用于定義手指所在的按鈕,即,用戶實際上不需要激活按鈕。 當手指必須伸展以達到控制時,努力值會增加。

兩個或更多控件只有相同的時間指示符/限定符/努力組合是因為它們物理連接在一起。 一個長的瘦鍵帽,一端是'+',另一端是' - '就是一個很好的例子。 如果它是作為兩個分立的按鈕電氣地實現的,即使它們都在同一個鍵帽下,也可以同時按下兩個按鈕。 如果供應商決定對于該產品,同時按下“+”和“ - ”按鈕是有效的,那么它們將被描述為具有相同物理描述符的兩個離散按鈕。?但是,如果鍵帽標記為“音量”并且同時按下兩個按鈕沒有任何意義,那么供應商可能會選擇將按鈕描述為具有三種有效狀態的單個項目:關閉,更多音量(+), 并減少音量( - )。 在這種情況下,只需要一個物理描述符。

考慮一個操縱桿,它在底座的左側有兩個按鈕(A和B),在桿的前面有一個觸發按鈕,與按鈕A進行邏輯或操作。操縱桿底座通常用左手握住,而 用右手操縱棍子。 因此,第一個描述符集將指定按鈕A為:

  • 食指,右,努力0

同樣,按鈕B將被指定為:

  • 拇指,左,努力0

如果將操縱桿放在桌面上并且左手用于控制基座上的兩個按鈕,則另一個描述符集可以識別按鈕A的替代映射:

  • 中指,左,努力0

按鈕B將被指定為:

  • 食指,左,努力0

?

注:指示符標簽是可選的,可以為設備的所有,部分或其中一個項目或元素提供。

?

描述符集0是一個特殊的描述符集,它指定了附加描述符集的數量,以及每個集合中物理描述符的數量。

PartOffset/Size (Bytes)Description
bNumber0/1指定物理描述符集數量的數字表達式。 不要在此編號中包含物理描述符0本身。
bLength1/2標識每個物理描述符長度的數字表達式。

在從主機接收到Get_Descriptor請求時,HID類設備將返回在請求wValue低字節中指定的描述符集。 描述符集由標題后跟一個或多個物理描述符組成。

?

HID類設備對其物理描述符使用以下格式。

?

  • 偏差字段指示描述符集正在表征哪一只手。 這可能不適用于某些設備。

注:僅適合右手的設備不會返回具有左手偏置的描述符集。

  • 首選項字段指示描述符集是否包含首選或替代指示符信息。 供應商將為最優選或最典型的物理信息集定義偏好值0。 較高的偏好值表示較不優選的描述符集。
  • 描述符集中的物理描述符由報表描述符中的指示符索引項引用。

?

?

  • 物理描述符包含以下部分:
PartOffset/Size (Bytes)Description

Designator

0/1指定值; 指示身體的哪個部分影響該項目
bFlags1/1指定標志的位:
7..5 ?限定符
4..0 ?努力值

?

指定值可選如下:

?

bDesignator取值含義表
bDesignator取值含義bDesignator取值含義
0x000x15小指
0x010x16
0x02眼球0x17
0x030x18腰骨
0x04眼皮0x19
0x050x1A大腿
0x060x1B膝蓋
0x070x1C小腿
0x08上唇0x1D
0x09下唇0x1E
0x0A0x1F腳跟
0x0B0x20拇指
0x0C上臂0x21大拇指
0x0D手肘0x22第二指
0x0E前臂0x23第三指
0x0F手腕0x24第四指
0x10手掌0x25小拇指
0x11拇指0x26
0x12食指0x27
0x13中指0x28~0xFF保留
0x14無名指?

?

?

  • 限定符字段指示指定者定義的手(或身體的一半)。 這可能不適用于某些設備。

Qualifier取值含義
Qualifier取值含義Qualifier取值含義
0x000x04其中之一
0x010x05中間
0x020x06保留
0x03兩者同時0x07保留

?

?

  • “努力”字段表示用戶訪問控件的容易程度。 值0表示用戶可以快速輕松地影響控件。 隨著值的增加,用戶變得更難或需要更長時間來影響控制。

?

?

想要詳細的學習物理描述符,可以看?HID Usage Tables 1.12的附錄章節。

其中以一個游戲手柄的例子講述了一個物理描述符的使用。

總結

以上是生活随笔為你收集整理的从零开始学USB(二十四、USB接口HID类设备(六)_物理描述符)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。