usbhid_config_t Struct Reference

HID Class Device Mode Configuration and State Structure. More...

Data Fields

u8 InterfaceNumber
 
u8 ReportINEndpointNumber
 
u16 ReportINEndpointSize
 
bool ReportINEndpointDoubleBank
 
void * PrevReportINBuffer
 
u8 PrevReportINBufferSize
 

Detailed Description

HID Class Device Mode Configuration and State Structure.

Class state structure. An instance of this structure should be made for each HID interface within the user application, and passed to each of the HID class driver functions as the HIDInterfaceInfo parameter. This stores each HID interface's configuration and state information.

Note
Due to technical limitations, the HID device class driver does not utilize a separate OUT endpoint for host->device communications. Instead, the host->device data (if any) is sent to the device via the control endpoint.

Field Documentation

◆ InterfaceNumber

u8 usbhid_config_t::InterfaceNumber

Interface number of the HID interface within the device.

◆ ReportINEndpointNumber

u8 usbhid_config_t::ReportINEndpointNumber

Endpoint number of the HID interface's IN report endpoint.

◆ ReportINEndpointSize

u16 usbhid_config_t::ReportINEndpointSize

Size in bytes of the HID interface's IN report endpoint.

◆ ReportINEndpointDoubleBank

bool usbhid_config_t::ReportINEndpointDoubleBank

Indicates if the HID interface's IN report endpoint should use double banking.

◆ PrevReportINBuffer

void* usbhid_config_t::PrevReportINBuffer

Pointer to a buffer where the previously created HID input report can be stored by the driver, for comparison purposes to detect report changes that must be sent immediately to the host. This should point to a buffer big enough to hold the largest HID input report sent from the HID interface. If this is set to NULL, it is up to the user to force transfers when needed in the CALLBACK_HID_Device_CreateHIDReport() callback function.

Note
Due to the single buffer, the internal driver can only correctly compare subsequent reports with identical report IDs. In multiple report devices, this buffer should be set to NULL and the decision to send reports made by the user application instead.

◆ PrevReportINBufferSize

u8 usbhid_config_t::PrevReportINBufferSize

Size in bytes of the given input report buffer. This is used to create a second buffer of the same size within the driver so that subsequent reports can be compared. If the user app is to determine when reports are to be sent exclusively (i.e. PrevReportINBuffer is NULL) this value must still be set to the size of the largest report the device can issue to the host.