Data Structures | |
struct | USB_ClassInfo_HID_Host_t |
Defines | |
#define | HID_ERROR_LOGICAL 0x80 |
Enumerations | |
enum | HIDHost_EnumerationFailure_ErrorCodes_t { HID_ENUMERROR_NoError = 0, HID_ENUMERROR_InvalidConfigDescriptor = 1, HID_ENUMERROR_NoHIDInterfaceFound = 2, HID_ENUMERROR_NoHIDDescriptorFound = 3, HID_ENUMERROR_EndpointsNotFound = 4 } |
Functions | |
void | HID_Host_USBTask (USB_ClassInfo_HID_Host_t *const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
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, void *Buffer, const uint16_t ReportSize) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3) |
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) |
The following files must be built with any user project that uses this module:
Host Mode USB Class driver framework interface, for the HID USB Class driver.
#define HID_ERROR_LOGICAL 0x80 |
Error code for some HID Host functions, indicating a logical (and not hardware) error
Enum for the possible error codes returned by the HID_Host_ConfigurePipes() function.
uint8_t HID_Host_ConfigurePipes | ( | USB_ClassInfo_HID_Host_t *const | HIDInterfaceInfo, | |
uint16_t | ConfigDescriptorSize, | |||
void * | DeviceConfigDescriptor | |||
) |
Host interface configuration routine, to configure a given HID host interface instance using the Configuration Descriptor read from an attached USB device. This function automatically updates the given HID Host instance's state values and configures the pipes required to communicate with the interface if it is found within the device. This should be called once after the stack has enumerated the attached device, while the host state machine is in the Addressed state.
[in,out] | HIDInterfaceInfo | Pointer to a structure containing a HID Class host configuration and state |
[in] | ConfigDescriptorSize | Length of the attached device's Configuration Descriptor |
[in] | DeviceConfigDescriptor | Pointer to a buffer containing the attached device's Configuration Descriptor |
bool HID_Host_IsReportReceived | ( | USB_ClassInfo_HID_Host_t *const | HIDInterfaceInfo | ) |
Determines if a HID IN report has been received from the attached device on the data IN pipe.
[in,out] | HIDInterfaceInfo | Pointer to a structure containing a HID Class host configuration and state |
uint8_t HID_Host_ReceiveReport | ( | USB_ClassInfo_HID_Host_t *const | HIDInterfaceInfo, | |
void * | Buffer | |||
) |
Receives a HID IN report from the attached HID device, when a report has been received on the HID IN Data pipe.
[in,out] | HIDInterfaceInfo | Pointer to a structure containing a HID Class host configuration and state |
[in] | Buffer | Buffer to store the received report into |
uint8_t HID_Host_ReceiveReportByID | ( | USB_ClassInfo_HID_Host_t *const | HIDInterfaceInfo, | |
const uint8_t | ReportID, | |||
void * | Buffer | |||
) |
Receives a HID IN report from the attached device, by the report ID.
[in,out] | HIDInterfaceInfo | Pointer to a structure containing a HID Class host configuration and state |
[in] | ReportID | Report ID of the received report if ControlRequest is false, set by the to the Report ID to fetch |
[in] | Buffer | Buffer to store the received report into |
uint8_t HID_Host_SendReportByID | ( | USB_ClassInfo_HID_Host_t *const | HIDInterfaceInfo, | |
const uint8_t | ReportID, | |||
void * | Buffer, | |||
const uint16_t | ReportSize | |||
) |
Sends an OUT report to the currently attached HID device, using the device's OUT pipe if available or the device's Control pipe if not.
[in,out] | HIDInterfaceInfo | Pointer to a structure containing a HID Class host configuration and state |
[in] | ReportID | Report ID of the report to send to the device, or 0 if the device does not use report IDs |
[in] | Buffer | Buffer containing the report to send to the attached device |
[in] | ReportSize | Report size in bytes to send to the attached device |
uint8_t HID_Host_SetBootProtocol | ( | USB_ClassInfo_HID_Host_t *const | HIDInterfaceInfo | ) |
Switches the attached HID device's reporting protocol over to the Boot Report protocol mode, on supported devices.
[in,out] | HIDInterfaceInfo | Pointer to a structure containing a HID Class host configuration and state |
uint8_t HID_Host_SetReportProtocol | ( | USB_ClassInfo_HID_Host_t *const | HIDInterfaceInfo | ) |
Switches the attached HID device's reporting protocol over to the standard Report protocol mode. This also retrieves and parses the device's HID report descriptor, so that the size of each report can be determined in advance.
[in,out] | HIDInterfaceInfo | Pointer to a structure containing a HID Class host configuration and state |
void HID_Host_USBTask | ( | USB_ClassInfo_HID_Host_t *const | HIDInterfaceInfo | ) |
General management task for a given Human Interface Class host class interface, required for the correct operation of the interface. This should be called frequently in the main program loop, before the master USB management task USB_USBTask().
[in,out] | HIDInterfaceInfo | Pointer to a structure containing a HID Class host configuration and state |