Библиотека LUFA (раннее название MyUSB) версия 101122
Драйвер режима USB-устройства класса HID

Data Structures

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

Functions

bool HID_Device_ConfigureEndpoints (USB_ClassInfo_HID_Device_t *const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
void HID_Device_ProcessControlRequest (USB_ClassInfo_HID_Device_t *const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
void HID_Device_USBTask (USB_ClassInfo_HID_Device_t *const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
bool CALLBACK_HID_Device_CreateHIDReport (USB_ClassInfo_HID_Device_t *const HIDInterfaceInfo, uint8_t *const ReportID, const uint8_t ReportType, void *ReportData, uint16_t *const ReportSize) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2) ATTR_NON_NULL_PTR_ARG(4) ATTR_NON_NULL_PTR_ARG(5)
void CALLBACK_HID_Device_ProcessHIDReport (USB_ClassInfo_HID_Device_t *const HIDInterfaceInfo, const uint8_t ReportID, const uint8_t ReportType, const void *ReportData, const uint16_t ReportSize) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(4)
static void HID_Device_MillisecondElapsed (USB_ClassInfo_HID_Device_t *const HIDInterfaceInfo) ATTR_ALWAYS_INLINE ATTR_NON_NULL_PTR_ARG(1)

Detailed Description

зависимости для исходного кода модуля

Следующие файлы должны быть скомпилированы с любым проектом, который использует этот модуль:

модуля

Фреймворк-интерфейс драйвера режима USB-устройства, для драйвера HID USB Class.


Function Documentation

bool CALLBACK_HID_Device_CreateHIDReport ( USB_ClassInfo_HID_Device_t *const  HIDInterfaceInfo,
uint8_t *const  ReportID,
const uint8_t  ReportType,
void *  ReportData,
uint16_t *const  ReportSize 
)

Функция обратного вызова (callback) драйвера HID class для создания пользователем HID-репорта IN. Этот callback может запускаться либо в ответ на управляющие запросы HID class от хоста, либо по обычному опросу конечной точки HID. Внутри этого callback пользователь отвечает за создание следующего входного репорта HID для отправки его хосту.

Parameters:
[in,out]HIDInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние HID Class.
[in,out]ReportIDесли предустановлено в ненулевое значение, это ID репорта, запрошенного хостом. Если ноль, то должно быть установлено в ID репорта при генерации входного репорта HID (если это имеет место). Если несколько репортов не посылается через указанный интерфейс HID, этот параметр должен игнорироваться.
[in]ReportTypeтип репорта HID для генерации, либо HID_REPORT_ITEM_In, либо HID_REPORT_ITEM_Feature.
[out]ReportDataуказатель на буфер, где должен быть сохранен сгенерированный репорт HID.
[out]ReportSizeколичество байт в сгенерированном входном репорте, или ноль, если репорт не будет отправлен.
Returns:
двоичное true, чтобы отправить репорт принудительно, даже если он идентичен предыдущему репорту и все еще в пределах периода ожидания (удобно для устройств, которые показывают относительное перемещение), иначе false.
void CALLBACK_HID_Device_ProcessHIDReport ( USB_ClassInfo_HID_Device_t *const  HIDInterfaceInfo,
const uint8_t  ReportID,
const uint8_t  ReportType,
const void *  ReportData,
const uint16_t  ReportSize 
)

Функция обратного вызова (callback) драйвера HID class для обработки пользователем принятого HID-репорта OUT. Этот callback может запускаться либо в ответ на управляющие запросы HID class от хоста, либо по обычному опросу конечной точки HID. Внутри этого callback пользователь отвечает за обработку принятого от хоста выходного репорта HID.

Parameters:
[in,out]HIDInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние HID Class.
[in]ReportIDID принятого выходного репорта. Если на указанном интерфейсе HID не принимается несколько репортов, этот параметр должен игнорироваться.
[in]ReportTypeтип принятого репорта HID, либо HID_REPORT_ITEM_Out, либо HID_REPORT_ITEM_Feature.
[in]ReportDataуказатель на буфер, где сохранен принятый репорт HID.
[in]ReportSizeразмер в байтах принятого от хоста репорта.
bool HID_Device_ConfigureEndpoints ( USB_ClassInfo_HID_Device_t *const  HIDInterfaceInfo)

Конфигурирует конечные точки указанного интерфейса HID готовыми для использования. Должна быть слинкована с событием библиотеки EVENT_USB_Device_ConfigurationChanged(), чтобы конечные точки конфигурировались, когда выбрана конфигурация, содержащая указанный интерфейс HID.

Note:
Индексные номера конечной точки, как указано в структуре конфигурации интерфейса, не должны наложиться ни с каким другим интерфейсом, иначе произойдет повреждение банка конечной точки. Разрывы в номерах конечных точек или непоследовательные индексы в пределах единственного интерфейса допустимы, но никакие два интерфейса любого типа не должны иметь чередования индексов конечной точки.
Parameters:
[in,out]HIDInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние HID Class.
Returns:
двоичное true, если конечные точки успешно сконфигурированы, иначе false.
static void HID_Device_MillisecondElapsed ( USB_ClassInfo_HID_Device_t *const  HIDInterfaceInfo) [inline, static]

Показывает, что прошла милисекунда времени ожидания на указанном интерфейсе HID, и счетчик ожидания должен декрементироваться. Нужно вызывать раз в милисекунду, чтобы ключевые повторения аппаратуры работали правильно. Рекомендуется вызывать эту функцию по событию EVENT_USB_Device_StartOfFrame(), как только события SOF (события начала фрейма) разрешены функцией USB_Device_EnableSOFEvents().

Parameters:
[in,out]HIDInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние HID Class.
void HID_Device_ProcessControlRequest ( USB_ClassInfo_HID_Device_t *const  HIDInterfaceInfo)

Обрабатывает приходящие запросы от хоста, которые направлены на указанный интерфейс HID class. Это должно быть слинковано с событием EVENT_USB_Device_ControlRequest() библиотеки.

Parameters:
[in,out]HIDInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние HID Class.
void HID_Device_USBTask ( USB_ClassInfo_HID_Device_t *const  HIDInterfaceInfo)

Главная задача поддержки для указанного интерфейса HID class, необходимая для корректной работы интерфейса. Должна часто вызываться в главном цикле программы, перед главной задачей поддержки USB USB_USBTask().

Parameters:
[in,out]HIDInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние HID Class.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines