Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Агуров П.В. -> "Интерфейсы USB. Практика использования и программирования" -> 58

Интерфейсы USB. Практика использования и программирования - Агуров П.В.

Агуров П.В. Интерфейсы USB. Практика использования и программирования — СПб.: БХВ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interface2004.djvu
Предыдущая << 1 .. 52 53 54 55 56 57 < 58 > 59 60 61 62 63 64 .. 166 >> Следующая

? два восьмибитовых поля определяются значениями Report Count = 2, Report Size = 8;
? 10 полей по 4 бита определяются значениями Report Count = 10, Report Size = 4;
? одно поле размером 16 бит определяется значениями Report Count = 1, Report Size = 16.
Каждый репорт может иметь идентификатор, задаваемый полем Report ID. Мы будем обсуждать использование этого поля в разд. 13.8.
Отличие логического минимума и максимума от физического проще всего понять на примере. Пусть устройство передает значение температуры от 0 до 200 °С с сеткой в 2 °С. Физический и логический минимум будет равен 0, а физический максимум — 200. Однако логический максимум будет равен 100.
Гпава 8. НЮ-устройства
163
Элемент Unit exponent позволяет определить десятичный порядок значений, описанных в репорте. Допустимы значения от -8 до +7 (табл. 8.5). Значение О (обозначающее 10° = 1) оставляет данные без изменений. Например, число 1234 и Unit exponent =0х0Е преобразуется в 12,34.
В общем случае для вычисления применяется следующая формула преобразования:
Value = Value_L х ((PhMax - PhMin) х (10AUExp)) / (LogMax -LogMin)
где
Vaiue_L — значение в логических единицах; PhMax, PhMin — физический максимум и минимум; иЕхр — экспонента;
LogMax, LogMin — логический максимум и минимум.
Таблица 8.5. Значения элемента Unit exponent
Экспонента 0 1 2 3 4 5 6 7
Код OxOO 0x01 0x02 0x03 0x04 0x05 0x06 0x07
Экспонента -8 -7 -6 -5 -4 -3 -2 -1
Код 0x08 0x09 OxOA OxOB OxOC OxOD OxOE OxOF
Элементы Push и Pop позволяют сохранить и восстановить глобальные настройки. Часто эти элементы позволяют значительно сократить размер дескриптора за счет сокращения повторных описаний.
Элемент Usage Page определяет назначение устройства. Спецификация определяет довольно много назначений (листинг 8.2). Для устройств, не попадающих в указанные типы, определяется тип Vendor Defined Page. В зависимости от выбранного назначения интерпретируется назначение полей данных, задаваемое элементом Usage.
і Листинг 8.2 Значения поля Usage Раде j
USAGE_PAGE (Generic Desktop) 05 01
USAGE-PAGE (Simulation Controls) 05 02
USAGE_PAGE (VR Controls) 05 03
USAGE_PAGE (Sports Controls) 05 04
USAGE_PAGE (Gaming Controls) 05 05
USAGE_PAGE (Keyboard) 05 07
USAGE PAGE (LEDs) 05 08
164
Часть III. Практика программирования
USAGE_ ^PAGE (Button) 05 09
USAGE^ _PAGE (Ordinals) 05 OA
USAGE_ _PAGE (Telephony Devices) 05 OB
USAGE^ page (Consumer Devices) 05 ос
USAGE_ PAGE (Digitizers) 05 OD
USAGE_ PAGE (Unicode) 05 10
USAGE_ PAGE (Alphnumeric Display) 05 14
USAGE_ _PAGE (Monitor) 05 80
[jsage_ PAGE (Monitor Enumerated Values) 05 81
JSAGE_ _PAGE (Monitor Enumerated Values) 05 81
;jsage_ PAGE (VESA Virtual Controls) 05 82
jsage^ PAGE (VESA Command) 05 83
:jsage_ PAGE (Power Device) 05 84
jsage_ PAGE (Battery System) 05 85
JSAGE PAGE (Vendor Defined Page 1) 06 00 FF
Покальные элементы
Іогические элементы характеризуют переключатели, кнопки и другие элементы, состояние которых передается с помощью репорта. Локальные элементы применяются ко всем элементам внутри основных элементов, пока -re найдется новое значение, но действие локальных элементов не переходит ранину основного элемента.
-Іаиболее часто используемым является элемент Usage (код 00001 Опп), обо-іначающий метод использования данных репорта. Интерпретация кода, за-іанного в этом элементе, зависит от элемента Usage Page (рис. 8.5).
•eyboard keyboard keyboard keyboard keyboard Y eyboard keyboard keyboatd keyboard к eyboard keyboard k eyboard keyboard keyboard
,eyboard keyboard keyboard eyboaid г euboard
errorroltuvef po.stfa.1 errofundeli a and a band b с and c dandd e and ? i and f g arid g hand h and i i and j k and k і and l m and m n and n oando . d^ndp
'ЕЖ"
m omtoi control eoid lnfoination vdif information vesa version on screen display auto size center polarity horz synch polarity vert synch sync type screen position нопгопіаі frequency vertical frequency
change Paget
Gaming Controls
3D game conweiler piiibah device gun device point of view turn right/left pitch right/left roll forward/backward move night/left move forward/backward move up/down lean right/left. lean forward/backward height of pov flipper
secondary flipper bump new came shoot ball player
change page I
Рис. 8.5. Наборы элементов Usage для разных Usage Page
гпава 8. НЮ-устройства
165
8.5.3. Примеры дескрипторов
Листинг 8.3 содержит пример дескриптора репорта мыши, листинг 8.4 клавиатуры, листинг 8.5 — монитора. Использование нестандартного HID-дескриптора мы будем рассматривать в разд. 13.5 при создании своего HID-устройства.
І Листинг 8.3. Дескриптор репорта мыши
USAGE_PAGE (Generic Desktop) 05 01
USAGE (Mouse) 09 02
COLLECTION (Application) Al 01
USAGE (Pointer) 09 01
COLLECTION (Physical) Al 00
USAGE_PAGE (Button) 05 09
USAGE_MINIMUM (Button 1) 19 01
USAGE_MAXIMUM (Button 3) 29 03
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM ' (1) 25 01
REPORT_COUNT (3) 95 03
REPORT_SIZE (1) 75 01
INPUT (Data,Var,Abs) 81 02
Предыдущая << 1 .. 52 53 54 55 56 57 < 58 > 59 60 61 62 63 64 .. 166 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100