@ -74,10 +74,31 @@ int main(void)
case HOST_STATE_Addressed :
case HOST_STATE_Addressed :
LEDs_SetAllLEDs ( LEDMASK_USB_ENUMERATING ) ;
LEDs_SetAllLEDs ( LEDMASK_USB_ENUMERATING ) ;
if ( CDC_Host_ConfigurePipes ( & VirtualSerial_CDC_Interface , 512 ) ! = CDC_ENUMERROR_NoError )
uint16_t ConfigDescriptorSize ;
uint8_t ConfigDescriptorData [ 512 ] ;
if ( USB_GetDeviceConfigDescriptor ( 1 , & ConfigDescriptorSize , NULL ) ! = HOST_SENDCONTROL_Successful )
{
printf ( " Error Retrieving Device Descriptor. \r \n " ) ;
LEDs_SetAllLEDs ( LEDMASK_USB_ERROR ) ;
USB_HostState = HOST_STATE_WaitForDeviceRemoval ;
break ;
}
if ( ConfigDescriptorSize > 512 )
{
{
printf ( " Attached device is not a valid CDC device. \r \n " ) ;
printf ( " Device Descriptor Too Large To Process. \r \n " ) ;
LEDs_SetAllLEDs ( LEDMASK_USB_ERROR ) ;
USB_HostState = HOST_STATE_WaitForDeviceRemoval ;
break ;
}
USB_GetDeviceConfigDescriptor ( 1 , & ConfigDescriptorSize , ConfigDescriptorData ) ;
if ( CDC_Host_ConfigurePipes ( & VirtualSerial_CDC_Interface ,
ConfigDescriptorSize , ConfigDescriptorData ) ! = CDC_ENUMERROR_NoError )
{
printf ( " Attached Device Not a Valid CDC Class Device. \r \n " ) ;
LEDs_SetAllLEDs ( LEDMASK_USB_ERROR ) ;
LEDs_SetAllLEDs ( LEDMASK_USB_ERROR ) ;
USB_HostState = HOST_STATE_WaitForDeviceRemoval ;
USB_HostState = HOST_STATE_WaitForDeviceRemoval ;
break ;
break ;
@ -86,7 +107,6 @@ int main(void)
if ( USB_Host_SetDeviceConfiguration ( 1 ) ! = HOST_SENDCONTROL_Successful )
if ( USB_Host_SetDeviceConfiguration ( 1 ) ! = HOST_SENDCONTROL_Successful )
{
{
printf ( " Error Setting Device Configuration. \r \n " ) ;
printf ( " Error Setting Device Configuration. \r \n " ) ;
LEDs_SetAllLEDs ( LEDMASK_USB_ERROR ) ;
LEDs_SetAllLEDs ( LEDMASK_USB_ERROR ) ;
USB_HostState = HOST_STATE_WaitForDeviceRemoval ;
USB_HostState = HOST_STATE_WaitForDeviceRemoval ;
break ;
break ;