Библиотека LUFA (раннее название MyUSB) версия 101122

Структура для хранения конфигурации и состояния устройства класса USB HID. More...

#include <HID.h>

Data Fields

struct {
   uint8_t   InterfaceNumber
   uint8_t   ReportINEndpointNumber
   uint16_t   ReportINEndpointSize
   bool   ReportINEndpointDoubleBank
   void *   PrevReportINBuffer
   uint8_t   PrevReportINBufferSize
Config
struct {
   bool   UsingReportProtocol
   uint16_t   IdleCount
   uint16_t   IdleMSRemaining
State

Detailed Description

Структура состояния класса. Экземпляр этой структуры должен быть создан для каждого интерфейса HID в приложении пользователя, и передан каждой функции драйвера класса HID в параметре HIDInterfaceInfo. Это сохраняет информацию о конфигурации и состоянии для каждого интерфейса HID.

Note:
Из-за технических ограничений устройство класса HID не использует отдельную конечную точку OUT для коммуникаций хост->устройство. Вместо этого данные хост->устройство (если эти данные есть) отправляются в устройство через конечную точку управления (control endpoint).

Field Documentation

Данные конфигурации интерфейса класса USB в пределах устройства. Все элементы в этой секции ДОЛЖНЫ быть установлены или интерфейс не сможет пройти энумерацию и корректно работать.

Период ожидания между репортами в милисекундах, устанавливается хостом.

Общее количество милисекунд, оставшихся до истечения периода ожидания - эта переменная должна декрементироваться каждую милисекунду приложением поьзователя, если она не ноль.

номер интерфейса HID в пределах устройства.

указатель на буфер, где может быть сохранен драйвером ранее созданный входной репорт HID - для детектирования, что репорт изменился и должен быть немедленно отправлен хосту. Должен указывать на буфер достаточно большой, чтобы сохранить самый большой входной репорт HID, отправленный от интерфейса HID. Если этот параметр NULL, то на пользователя возложено запускать передачу, когда это нужно, вызовом функции CALLBACK_HID_Device_CreateHIDReport().

Note:
Из-за того, что буфер один, внутренний драйвер может корректно стравнить только последовательные репорты с идентичными ID. В устройствах с несколькими репортами этот буфер должен быть установлен в NULL, и решение об отправке репортов делает вместо этого приложение пользователя.

Размер в байтах указанного буфера входного репорта. Это значение исопльзуется для создания внутри драйвера второго буфера с тем же размером - чтобы можно было сравнивать последовательные репорты. Если приложение пользователя определяет, когда репорты отправляются эксклюзивно (например PrevReportINBuffer равен NULL) это значение все равно устанавливается в размер наибольшего репорта, который устройство может выдать в хост.

показывает, что конечная точка IN репорта интерфейса HID использует двойной банк.

номер конечной точки IN репорта интерфейса HID.

размер в байтах конечной точки IN репорта интерфейса HID.

Данные состояния интерфейса класса USB в пределах устройства. Все элементы в этой секции сбрасываются в свое состояние по умолчанию, когда интерфейс проходит энумерацию.

Показывает, что интерфейс HID установлен в режим притокола загрузки (Boot) или в режим протокола репортов.


The documentation for this struct was generated from the following file:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines