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

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

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

Integer): LongBool;
Первый параметр передает дескриптор устройства, полученный с помощью
вызова CreateFiie, второй - указатель на буфер для репорта, третий -
размер буфера. Размер буфера должен быть на единицу больше, чем размер
репорта, описанный в дескрипторе HID-устройства1. Его можно получить с
ПОМОЩЬЮ функции HidP_GetCaps.
Если используется несколько репортов, то в первом байте буфера должен
передаваться идентификатор репорта (Report ID).
Пример использования этой функции показан в листинге 17.3.
var
FeatureReport : Array [0..255] of Byte;
If Capabilities.FeatureReportByteLength > 0 then begin FillChar(Feature,
SizeOf(Feature), #0) ;
// Feature [1]:= 1; идентификатор репорта If HidD_GetFeature(HidHandle,
Feature,
Capabilities.FeatureReportByteLength) then begin // использование репорта
End;
End;
17.6. Функция HidD_SetFeature: передача FEATURE-репорта
Функция HidD_setFeature используется для передачи FEATURE-репорта. Размер
передаваемого буфера должен быть на единицу больше, чем размер,
1 Спецификация USB, также как и Windows, использует понятие "дескриптор".
Следует различать дескриптор, возвращаемый функцией CreateFiie (тип
THandle) и дескриптор USB-устройства.
Глава 17. Функции HID API
495
описанный в дескрипторе устройства. В первом байте буфера передается
идентификатор репорта (Report ID), если он используется, и 0 - если нет.
Формат заголовка на языке Delphi имеет вид:
function HidD_SetFeature(HidDeviceObject: THandle;
var Report; Size: Integer): LongBool; Параметры этой функции совпадают с
параметрами функции
HidD_GetFeature.
17.7. Функция HidD_GetNumlnputBuffers: получение числа буферов
Функция HidD_GetNuminputBuffers возвращает количество репортов,
сохраняемое в кольцевом буфере драйвера.
Формат заголовка на языке Delphi имеет вид:
function HidD_GetNumInputBuffers(HidDeviceObject: THandle;
var NumBufs: Integer): LongBool;
Первый параметр передает дескриптор устройства, полученный с помощью
вызова CreateFile, второй - переменную для возвращения результата.
17.8. Функция HidD_SetNumlnputBuffers: установка числа буферов
Функция HidD_SetNuminputBuffers устанавливает количество репортов,
сохраняемое в кольцевом буфере драйвера.
Формат заголовка на языке Delphi имеет вид:
function HidD_SetNumInputBuffers(HidDeviceObject: THandle;
NumBufs: Integer): LongBool;
Параметры этой функции совпадают с параметрами функции
HidD_GetNumInputBuffers.
17.9. Функция HidD_GetAttributes\ получение атрибутов устройства
Функция HidD_GetAttributes возвращает атрибуты устройства, описываемые
структурой THIDDAttributes (листинг 17.4).
496
Часть . правочнж
¦^Тистинг 17.4. Описание структуры THIDOAttributas
................
...................................................
PHIDDAttributes = ''THIDDAttributes;
THIDDAttributes = record
Size: ULONG; 11 размер структуры
VendorlD; Word; // идентификатор производителя
ProductID: Word; // идентификатор продукта
VersionNumber: Word; // версия
// Могут присутствовать дополнительные поля end;
Формат заголовка на языке Delphi имеет вид:
function HidD_GetAttributes(HidDeviceObject: THandle;
var HidAttrs: THIDDAttributes): LongBool;
Первый параметр передает дескриптор устройства, полученный с помощью
вызова CreateFiie, второй - буфер для возвращения результата. Поле size
структуры THIDDAttributes должно быть заполнено перед вызовом функции.
Пример использования этой функции показан в листинге 17.5.
•Лиртикг 17.5.,Пример использования функции HidD_GetAttributes
- - -----------------------------------------------------
Var
Attributes : THIDDAttributes;
Attributes.Size := SizeOf(THIDDAttributes);
If HidD_GetAttributes(HidHandle, Attributes) then begin // Функция
выполнена успешно End;
17.10. Функция HidD_GetManufacturerString: получение строки
производителя
Функция HidD GetManufacturerstring возвращает строку производителя,
индекс которой описан в дескрипторе конфигурации устройства. Формат
заголовка на языке Delphi имеет вид:
function HidD_GetManufacturerString(HidDeviceObject: THandle;
Buffer: PWideChar; BufferLength: Integer): LongBool;
Гпава 17. Функции HID API
497
Первый параметр передает дескриптор устройства, полученный с помощью
вызова CreateFile, второй - буфер для строки, третий - размер буфера.
Пример использования этой функции показан в листинге 17.6.
Листинг 17.6. Пример использования функции HidDjGetManufacturerString
Var
Buffer : array [0..253] of WideChar;
S : String;
FillChar (Buffer, Size.Of (Buffer) , #0);
If HidD_GetManufacturerString(HidHandle, Buffer, SizeOf(Buffer)) then
begin
S:= Format!' Производитель=%з',[Buffer]));
End;
17.11. Функция HidD_GetProductString: получение строки продукта
Функция HidD_GetProductstring возвращает строку продукта, индекс которой
описан в дескрипторе конфигурации устройства.
Формат заголовка на языке Delphi имеет вид:
function HidD_GetProductString(HidDeviceObject: THandle;
Buffer; PWideChar; BufferLength: Integer); LongBool;
Предыдущая << 1 .. 144 145 146 147 148 149 < 150 > 151 152 153 154 155 156 .. 168 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Завалишин Д. "Интернетско-русский разговорник" (Web-программирование)

Заенцев И.В. "Нейронные сети: основные модели" (Web-программирование)

Владимиров А.А. "Wi-фу: «боевые» приемы взлома и защиты беспроводных сетей" (Web-программирование)

Вьейра Р. "SQL Server 2000. Программирование в 2 ч." (Web-программирование)

Веллинг Л.Т. "Разработка web приложений с помощью php и mysql" (Web-программирование)
Авторские права © 2013 ComputersBooks. Все права защищены.

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed