usb_status_t UsbGenericHidSetConfiguration(class_handle_t handle, uint8_t configuration)
{
    if (USB_COMPOSITE_CONFIGURATION_INDEX == configuration) {
        return UsbReceiveData();
    }
    return kStatus_USB_Error;
}
usb_status_t UsbGenericHidSetInterface(class_handle_t handle, uint8_t interface, uint8_t alternateSetting)
{
    if (USB_GENERIC_HID_INTERFACE_INDEX == interface) {
        return UsbReceiveData();
    }
    return kStatus_USB_Error;
}
usb_status_t UsbGenericHidCallback(class_handle_t handle, uint32_t event, void *param)
{
    usb_status_t error = kStatus_USB_Error;

    switch (event) {
    case kUSB_DeviceHidEventSendResponse:
        break;
    case kUSB_DeviceHidEventRecvResponse:
        UsbProtocolHandler();

        USB_DeviceHidSend(UsbCompositeDevice.genericHidHandle,
                          USB_GENERIC_HID_ENDPOINT_IN_INDEX,
                          GenericHidOutBuffer,
                          USB_GENERIC_HID_OUT_BUFFER_LENGTH);
        return UsbReceiveData();
        break;
    case kUSB_DeviceHidEventGetReport:
    case kUSB_DeviceHidEventSetReport:
    case kUSB_DeviceHidEventRequestReportBuffer:
        error = kStatus_USB_InvalidRequest;
        break;
    case kUSB_DeviceHidEventGetIdle:
    case kUSB_DeviceHidEventGetProtocol:
    case kUSB_DeviceHidEventSetIdle:
    case kUSB_DeviceHidEventSetProtocol:
        break;
    default:
        break;
    }

    return error;
}
Beispiel #4
0
void vUSBTask(void *pvParameters)
{
	uint16 usbsize;
	uint8 usbbuf[256];
	//uint8 usbbufsizes[100];
	CONTENTS stru[100];
	uint16 usbbufsizesCounter=0;
	bool st = false;
	/* The parameters are not used. */
	(void) pvParameters;
/*
	uint16_t bufff[20];
	bufff[0] = 0x555;
	bufff[1] = 0x444;
	bufff[2] = 0x333;
	bufff[3] = 0x222;
	bufff[4] = 0x111;

	FLASH_ErasePage(DEVICE_FLASHMEM_LOCATION);
	//FLASH_ProgramHalfWord(DEVICE_FLASHMEM_LOCATION,bufff[0]);

	//FLASH_ProgramHalfWord(DEVICE_FLASHMEM_LOCATION+0x02,bufff[1]);
	//FLASH_ProgramHalfWord(DEVICE_FLASHMEM_LOCATION+0x04,bufff[2]);
	//FLASH_ProgramHalfWord(DEVICE_FLASHMEM_LOCATION+0x06,bufff[3]);
	//FLASH_ProgramHalfWord(DEVICE_FLASHMEM_LOCATION+0x08,bufff[4]);
	WriteFlash( bufff,(void*)(DEVICE_FLASHMEM_LOCATION),  10);*/
	//vTaskDelay(15000);
	  Set_USBClock();
	  USB_Interrupts_Config();
	  USB_Init();
int heapSize = 0;
	  while (1)
	  {
			heapSize = xPortGetFreeHeapSize();
							heapSize +=0;
		  usbsize = UsbReceiveData(usbbuf,256);

		  if(usbsize > 0)
		  {

			  stru[usbbufsizesCounter].buf[0]=usbbuf[0];
			  stru[usbbufsizesCounter].buf[1]=usbbuf[1];
			  stru[usbbufsizesCounter].buf[2]=usbbuf[2];
			  stru[usbbufsizesCounter].buf[3]=usbbuf[3];
			  stru[usbbufsizesCounter].size = usbsize;
			  usbbufsizesCounter++;
			  if(usbbufsizesCounter>=100) usbbufsizesCounter = 0;
			  usbsize = RVnetSlaveProcess(usbbuf,usbsize,1);
			  if(usbsize > 0)
			  {
				  UsbSendData(usbbuf,usbsize);
			  }
		  }
		  vTaskDelay(1);
	  }
}