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

 

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

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

Агуров П.В. Интерфейсы USB. Практика использования и программирования — СПб.: БХВ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interface2004.djvu
Предыдущая << 1 .. 144 145 146 147 148 149 < 150 > 151 152 153 154 155 156 .. 166 >> Следующая

end;
17.14. Функция HidD_GetlnputReport получение INPUT-репорта
Функция HidD_GetinputReport позволяет получить INPUT-репорт. Эта функция доступна только начиная с Windows XP.
Формат заголовка на языке Delphi имеет вид:
function HidD_GetInputReport(HidDeviceObject: THandle;
Buffer: Pointer; BufferLength: ULONG): LongBool;
Первый параметр передает дескриптор устройства, полученный с помощью вызова CreateFiie, второй — буфер для репорта, третий — размер буфера. Размер буфера может быть получен с помощью вызова функции
HidP_GetCaps.
Глава 17. Функции HID API
499
Пример использования этой функции показан в листинге 17.8.
InputReport : Array [0..255] of Byte;
If HidD_GetInputReport(HidHandle, @InputReport,
Capabilities.InputReportByteLength) then begin 11 Репорт получен успешно End;
17.15. Функция HidD_SetOutputReport передача OUTPUT-репорта
Функция HidD_SetOutputReport позволяет передать OUTPUT-репорт. Эта функция доступна только начиная с Windows XP.
Формат заголовка на языке Delphi имеет вид:
function HidD_SetOutputReport(HidDeviceObject: THandle;
Первый параметр передает дескриптор устройства, полученный с помощью вызова CreateFile, второй — буфер репорта, третий — размер буфера.
Функция HidP_GetCaps позволяет получить свойства устройства. Функция возвращает структуру THiDPCaps (листинг 17.9).
Формат заголовка на языке Delphi имеет вид:
function HidP_GetCaps(PreparsedData: PHIDPPreparsedData;
var
Buffer: Pointer; BufferLength: ULONG): LongBool;
17.16. Функция HidP_GetCaps: получение свойств устройства
var Capabilities: THiDPCaps): NTSTATUS;
¦I
істинг17.9.,Структура свойств устройства _ , .
PTHIDPCaps = л THiDPCaps; THiDPCaps = record
Usage:
UsagePage:
TUsage; // значение Usage TUsage; // значение Usage Page
500
Часть V. Справочник
InputReportByteLength: OutputReportByteLength: FeatureReportByteLength: Reserved:
Word; Il размер INPUT-репорта Word; Il размер OUTPUP-репорта Word; II размер FEATURE-репорта
array [0..16] of Word;
Il Специфические HID-значения
NumberLinkCollectionNodes: Word;
NumberlnputButtonCaps: Word;
NumberlnputValueCaps: Word;
NumberlnputDatalndices: Word;
NumberOutputButtonCaps: Word;
NumberOutputValueCaps: Word;
NumberOutputDatalndices; Word;
NumberFeatureButtonCaps: Word;
NumberFeatureValueCaps: Word;
NumberFeatureDatalndices: Word; end;
Пример использования этой функции показан в листинге 17.10.
Var
Capabilities : HIDP_CAPS; PreparsedData: PHIDPPreparsedData;
If HidD_GetPreparsedData(HidHandle, PreparsedData) then begin
HidP_GetCaps(PreparsedData, Capabilities);
Il Capabilities.UsagePage
11 Capabilities.InputReportByteLength
Il Capabilities.OutputReportByteLength
ГІ Capabilities .FeatureReportByteLength End;
17.17. Функция HidP_MaxDataListLength: получение размеров репортов
Функция HidPMaxDataListLength позволяет получить размер репорта, определенного параметром ReportType.
Глава 17. Функции HID API
501
Формат заголовка на языке Delphi имеет вид:
function HidP_MaxDataListLength(ReportType: DWORD;
PreparsedData: PHIDPPreparsedData): ULONG;
Первый параметр передает тип репорта:
HidP_Input = 0; HidP_Output = 1; HidP_Feature = 2;
Второй параметр передает указатель на Структуру THiDPPreparsedData, по-ЛуЧЭемуЮ ВЫЗОВОМ HidP GetCaps.
Глава 18
Хост-контроллер UCH
Интерфейс контроллера UHC описан в документе Universal Host Controller Interface (UHCI) Design Guide, версия 1.1 которого вышла в 1996 г. Это FS/LS хост-контроллер, который большую часть забот по планированию транзакций перекладывает на ПО — драйвер контроллера UHC (UHCD).
18.1. Регистры управления хост-контроллером
Управление хост-контроллером драйвер интерфейса USB производит через специальные регистры, которые принято разделять на две группы:
? группа конфигурационных регистров PCI (USB PCI Configuration Registers);
? группа регистров пространства ввода/вывода (USB Host Controller IO Space Registers).
Группа конфигурационных регистров показана в табл. 18.1. Более подробного описания мы давать не будем, т. к. эти регистры в пользовательских программах не используются.
Таблица 18.1. Конфигурационные регистры хост-контроллера USB
Смещение Обозначение Название Доступ
00-01H VID Идентификатор производителя (Vendor Identification) RO
02-ОЗН DID Идентификатор устройства (Device Identification) RO
04-05Н PCICMD Регистр команд (PCI Command) R/W
06-07Н PCISTS Регистр статуса (PC) Device Status) R/W
08Н RID Ревизия (Revision Identification) RO
09-ОВН CLASSC Код класса (Class Code) RO
Гпава 18. Хост-контроллер UCH
503
Таблица 18.1 (окончание)
Смещение Обозначение Название Доступ
OCH - Резерв -
ODH MLT Задержка таймера (Latency Timer) R/W
OEH HEDT Тип заголовка (Header Туре) RO
0F-1FH - Резерв -
20-23Н USBBA Базовый регистр в/в (USB IO Space Base Address) R/W
24-ЗВН - Резерв -
3CH INTLN Линия прерывания (Interrupt Line) R/W
3DH INTPN Ножка прерывания (Interrupt Pin) RO
ЗЕ—5FhH - Резерв -
6OH SBRNUM Версия последовательной шины (Serial Bus Release Number) RO
Предыдущая << 1 .. 144 145 146 147 148 149 < 150 > 151 152 153 154 155 156 .. 166 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100