Data Structures |
struct | USB_ClassInfo_HID_Host_t |
| Структура конфигурации и состояния HID Class режима хоста. More...
|
Defines |
#define | HID_ERROR_LOGICAL 0x80 |
Enumerations |
enum | HID_Host_EnumerationFailure_ErrorCodes_t {
HID_ENUMERROR_NoError = 0,
HID_ENUMERROR_InvalidConfigDescriptor = 1,
HID_ENUMERROR_NoCompatibleInterfaceFound = 2
} |
Functions |
uint8_t | HID_Host_ConfigurePipes (USB_ClassInfo_HID_Host_t *const HIDInterfaceInfo, uint16_t ConfigDescriptorSize, void *DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3) |
uint8_t | HID_Host_ReceiveReport (USB_ClassInfo_HID_Host_t *const HIDInterfaceInfo, void *Buffer) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2) |
uint8_t | HID_Host_ReceiveReportByID (USB_ClassInfo_HID_Host_t *const HIDInterfaceInfo, const uint8_t ReportID, void *Buffer) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3) |
uint8_t | HID_Host_SendReportByID (USB_ClassInfo_HID_Host_t *const HIDInterfaceInfo, const uint8_t ReportID, const uint8_t ReportType, void *Buffer, const uint16_t ReportSize) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(4) |
bool | HID_Host_IsReportReceived (USB_ClassInfo_HID_Host_t *const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | HID_Host_SetBootProtocol (USB_ClassInfo_HID_Host_t *const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | HID_Host_SetReportProtocol (USB_ClassInfo_HID_Host_t *const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
static void | HID_Host_USBTask (USB_ClassInfo_HID_Host_t *const HIDInterfaceInfo) |
Detailed Description
зависимости для исходного кода модуля
Следующие файлы должны быть скомпилированы с любым проектом, который использует этот модуль:
- LUFA/Drivers/USB/Class/Host/HID.c (Имя модуля исходного кода для makefile: LUFA_SRC_USBCLASS)
- LUFA/Drivers/USB/Class/Host/HIDParser.c (Имя модуля исходного кода для makefile: LUFA_SRC_USB)
модуля
Фреймворк-интерфейс для драйвера режима хоста HID USB Class.
Define Documentation
#define HID_ERROR_LOGICAL 0x80 |
Код ошибки для некоторых функций хоста HID, показывающий логическую (не аппаратную) ошибку.
Enumeration Type Documentation
Перечисление для возможных кодов ошибки, возвращаемых функцией HID_Host_ConfigurePipes().
- Enumerator:
HID_ENUMERROR_NoError |
дескриптор конфигурации обработан успешно.
|
HID_ENUMERROR_InvalidConfigDescriptor |
устройство возвратило неверный дескриптор конфигурации.
|
HID_ENUMERROR_NoCompatibleInterfaceFound |
в дескрипторе конфигурации устройства не найден совместимый интерфейс HID.
|
Function Documentation
uint8_t HID_Host_ConfigurePipes |
( |
USB_ClassInfo_HID_Host_t *const |
HIDInterfaceInfo, |
|
|
uint16_t |
ConfigDescriptorSize, |
|
|
void * |
DeviceConfigDescriptor |
|
) |
| |
Подпрограмма конфигурирования интерфейса хоста, для конфигурирования указанного экземпляра интерфейса хоста HID с использованием дескриптора конфигурации, прочитанного от подключенного устройства USB. Эта функция автоматически обновляет переменные состояния экземпляра хоста HID и конфигурирует каналы, необходимые для соединения с интерфейсом, если он найден на устройстве. Должна быть вызвана один раз после того, как стек проведет энумерацию устройства, когда машина хоста перейдет в состояние Addressed (адресовано).
- Note:
- Индексы канала, как дано в структуре конфигурации интерфейса, не должны наложиться ни с каким другим интерфейсом, или произойдет повреждение банка канала. Разрывы в выделенных числах канала или непоследовательных индексах в пределах единственного интерфейса позволены, но никакие два интерфейса любого типа не могут чередовать индексы канала.
-
После того, как потоки устройства сконфигурированы, протокол репортов устройства HID должен быть установлен либо через вызов HID_Host_SetBootProtocol(), либо через вызов HID_Host_SetReportProtocol().
- Parameters:
-
[in,out] | HIDInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста HID Class. |
[in] | ConfigDescriptorSize | длина дескриптора конфигурации подключенного устройства. |
[in] | DeviceConfigDescriptor | указатель на буфер, содержащий дескриптор конфигурации подключенного устройства. |
- Returns:
- значение из перечисления HID_Host_EnumerationFailure_ErrorCodes_t.
Определяет, принят ли репорт HID IN из подключенного устройства по каналу данных IN.
- Precondition:
- Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
- Parameters:
-
[in,out] | HIDInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста HID Class. |
- Returns:
- двоичное true, если репорт принят, иначе false.
Принимает репорт HID IN от подключенного устройства HID, когда репорт принимается через канал данных HID IN.
- Precondition:
- Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
- Note:
- Буфер назначения должен быть достаточного размера, чтобы принять наибольший по размеру репорт, который может сгенерировать подключенное устройство.
- Parameters:
-
[in,out] | HIDInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста HID Class. |
[in] | Buffer | буфер для сохранения информации из принятого репорта. |
- Returns:
- код ошибки из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t HID_Host_ReceiveReportByID |
( |
USB_ClassInfo_HID_Host_t *const |
HIDInterfaceInfo, |
|
|
const uint8_t |
ReportID, |
|
|
void * |
Buffer |
|
) |
| |
Принимает репорт HID IN от подключенного устройства, по ID репорта.
- Precondition:
- Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
- Note:
- Когда задан токен времени компиляции HID_HOST_BOOT_PROTOCOL_ONLY, этот метод недоступен.
- Parameters:
-
[in,out] | HIDInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста HID Class. |
[in] | ReportID | ID принятого репорта, если ControlRequest равен false - для определения ID обрабатываемого репорта. |
[in] | Buffer | буфер для сохранения информации из принятого репорта. |
- Returns:
- значение из перечисления USB_Host_SendControlErrorCodes_t.
uint8_t HID_Host_SendReportByID |
( |
USB_ClassInfo_HID_Host_t *const |
HIDInterfaceInfo, |
|
|
const uint8_t |
ReportID, |
|
|
const uint8_t |
ReportType, |
|
|
void * |
Buffer, |
|
|
const uint16_t |
ReportSize |
|
) |
| |
Отправляет репорт OUT или FEATURE в подключенное устройство HID, с использованием либо канала OUT, если он доступен, либо канала управления, если канал OUT недоступен.
- Precondition:
- Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
- Note:
- Когда задан токен времени компиляции HID_HOST_BOOT_PROTOCOL_ONLY, параметр ReportID удаляется из списка параметров этой функции.
- Parameters:
-
[in,out] | HIDInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста HID Class. |
[in] | ReportID | ID репорта для отправки в устройство, или 0, если устройство не использует идентификаторов репорта. |
[in] | ReportType | тип репорта для выдачи в устройство, либо HID_REPORT_ITEM_Out, либо HID_REPORT_ITEM_Feature. |
[in] | Buffer | буфер, содержащий репорт для отправки в подключенное устройство. |
[in] | ReportSize | размер репорта в байтах для отправки в подключенное устройство. |
- Returns:
- код ошибки из перечисления USB_Host_SendControlErrorCodes_t, если установлен флаг DeviceUsesOUTPipe в структуре состояния интерфейса, инаяе значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
Переключает протокол репортов подключенного устройства HID в режим протокола загрузки, на тех устройствах, где это поддерживается.
- Note:
- Когда задан токен времени компиляции HID_HOST_BOOT_PROTOCOL_ONLY, этот метод все еще должен быть вызван для явного переключения подключенного устройства в режим протокола загрузки перед использованием этого протокола.
- Parameters:
-
[in,out] | HIDInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста HID Class. |
- Returns:
- HID_ERROR_LOGICAL, есл устройство не поддерживает режи протокола загрузки, иначе значение из перечисления USB_Host_SendControlErrorCodes_t.
Переключает протокол репорта подключенного устройства HID на использование стандартного режима репортов. Это также запрашивает и делает парсинг дескриптора репорта устройства HID так, чтобы размер каждого рапорта мог быть определен заранее.
- Note:
- Независимо от того, используется эта функция или нет, функция обратного вызова CALLBACK_HIDParser_FilterHIDReportItem() из парсера репорта должна быть реализована в коде пользователя.
-
Когда задан токен времени компиляции HID_HOST_BOOT_PROTOCOL_ONLY, этот метод недоступен.
- Parameters:
-
[in,out] | HIDInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста HID Class. |
- Returns:
- значение из перечисления USB_Host_SendControlErrorCodes_t, если произошла ошибка при запросе дескриптора репорта HID или при устрановке протокола репорта, HID_ERROR_LOGICAL если интефрейс HID не имеет в своей конфигурации верного набора структуры HID_ReportInfo_t, то маска HID_ERROR_LOGICAL, иначе значение из HID_Parse_ErrorCodes_t.
Главная задача обработки для указанного интерфейса хоста HID, необходимая для корректной работы интерфейса. Должна часто вызываться из основного цикла программы, перед главной задачей поддержки USB USB_USBTask().
- Parameters:
-
[in,out] | HIDInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста HID Class. |