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;
} |