fileStreamdevicedata.BeginRead(inputReportBuffer, 0, inputReportBuffer.Length, New AsyncCallback(AddressOf GetInputReportData), inputReportBuffer) |
If (chkUseControlTransfersOnly.Checked = True) Then ' Read a report using a control transfer. success = MyHid.GetInputReportViaControlTransfer(hidHandle, inputReportBuffer) fileStreamdevicedata.BeginRead(inputReportBuffer, 0, inputReportBuffer.Length, New AsyncCallback(AddressOf GetInputReportData), inputReportBuffer) |
*pBuffer[0] = PCInReportData |
*pBuffer[1] = adcValue |
USBD_API->hw->WriteEP(hUsb, pHidCtrl->epin_adr, loopback_report, [color=#f03]3[/color]); *plength = [color=#f03]3[/color]; (static ErrorCode_t HID_GetReport()) USB_HID_REPORT_T reports_data[[color=#f03]3[/color]]; (ErrorCode_t usb_hid_init()) #define HID_INPUT_REPORT_BYTES [color=#f03] 3[/color] (hid_desc.h) |
/* HID Interrupt endpoint event handler. */ static ErrorCode_t HID_Ep_Hdlr(USBD_HANDLE_T hUsb, void *data, uint32_t event) { USB_HID_CTRL_T *pHidCtrl = (USB_HID_CTRL_T *) data; switch (event) { case USB_EVT_IN: /* last report is successfully sent. Do something... */ /* loopback the report received. */ USBD_API->hw->WriteEP(hUsb, pHidCtrl->epin_adr, loopback_report, 3); break; |
/* HID Interrupt endpoint event handler. */ static ErrorCode_t HID_Ep_Hdlr(USBD_HANDLE_T hUsb, void *data, uint32_t event) { USB_HID_CTRL_T *pHidCtrl = (USB_HID_CTRL_T *) data; switch (event) { case USB_EVT_IN: /* last report is successfully sent. Do something... */ /* loopback the report received. */ USBD_API->hw->WriteEP(hUsb, pHidCtrl->epin_adr, loopback_report, 3); break; case USB_EVT_OUT: /* Read the new report received. */ USBD_API->hw->ReadEP(hUsb, pHidCtrl->epout_adr, loopback_report); break; } return LPC_OK; } |
/* HID set report callback function. */ static ErrorCode_t HID_SetReport(USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t **pBuffer, uint16_t length) { uint8_t PCOutReportData = *pBuffer[0]; /* we will reuse standard EP0Buf */ if (length == 0) { return LPC_OK; } /* ReportID = SetupPacket.wValue.WB.L; */ switch (pSetup->wValue.WB.H) { case HID_REPORT_INPUT: return ERR_USBD_STALL;/* Not Supported */ case HID_REPORT_OUTPUT: *loopback_report = **pBuffer; //bonitusb PCOutReportData = *pBuffer[0]; if(PCOutReportData & 0x01) GPIO_PIN0_bit.P0_2 = 1; else GPIO_PIN0_bit.P0_2 = 0; break; case HID_REPORT_FEATURE: return ERR_USBD_STALL;/* Not Supported */ } return LPC_OK; } |