2.6.2.3.4 Receiving a Report
The application can receive a report from the Host by using the USB_DEVICE_HID_ReportReceive function. This function returns a transfer handler that allows the application to track the read request. The request is completed when the Host sends the report. The application must make sure that it allocates a buffer size that is at least the size of the report. The return value of the function indicates the success of the request. A read request could fail if the driver transfer queue is full. The completion of the read transfer is indicated by a USB_DEVICE_HID_EVENT_REPORT_RECEIVED event. The reportReceived member of the eventData data structure contains details about the received report. The following code shows an example of how a USB HID Keyboard can schedule a receive report operation to get the keyboard LED status.
/* The following code shows how the * USB HID Keyboard application schedules a * receive report operation to receive the * keyboard output report from the host. This * report contains the keyboard LED status. The * size of the report is 1 byte */ result = USB_DEVICE_HID_ReportReceive(appData.hidInstance, &appData.receiveTransferHandle, (uint8_t *)&appData.keyboardOutputReport,1); if(USB_DEVICE_HID_RESULT_OK != result) { /* Do error handling here */ }