X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/0d8679cf6bf02b3fd07028f63187286f5d4ffc20..cbbd3d746acef02a4afd562652a2ba71b24dfd6f:/Demos/Host/ClassDriver/CDCHost/CDCHost.c?ds=inline diff --git a/Demos/Host/ClassDriver/CDCHost/CDCHost.c b/Demos/Host/ClassDriver/CDCHost/CDCHost.c index 96b4b43ff..65f490f28 100644 --- a/Demos/Host/ClassDriver/CDCHost/CDCHost.c +++ b/Demos/Host/ClassDriver/CDCHost/CDCHost.c @@ -62,13 +62,38 @@ int main(void) { SetupHardware(); - puts_P(PSTR(ESC_RESET ESC_BG_WHITE ESC_INVERSE_ON ESC_ERASE_DISPLAY - "CDC Host Demo running.\r\n" ESC_INVERSE_OFF)); + puts_P(PSTR(ESC_FG_CYAN "CDC Host Demo running.\r\n" ESC_FG_WHITE)); LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); for (;;) { + switch (USB_HostState) + { + case HOST_STATE_Addressed: + if (!(CDC_Host_ConfigurePipes(&VirtualSerial_CDC_Interface))) + { + LEDs_SetAllLEDs(LEDMASK_USB_ERROR); + USB_HostState = HOST_STATE_WaitForDeviceRemoval; + break; + } + + if (USB_Host_SetDeviceConfiguration(1) != HOST_SENDCONTROL_Successful) + { + LEDs_SetAllLEDs(LEDMASK_USB_ERROR); + USB_HostState = HOST_STATE_WaitForDeviceRemoval; + break; + } + + USB_HostState = HOST_STATE_Configured; + break; + case HOST_STATE_Configured: + USB_HostState = HOST_STATE_Ready; + break; + case HOST_STATE_Ready: + break; + } + CDC_Host_USBTask(&VirtualSerial_CDC_Interface); USB_USBTask(); } @@ -121,8 +146,8 @@ void EVENT_USB_HostError(const uint8_t ErrorCode) { USB_ShutDown(); - puts_P(PSTR(ESC_BG_RED "Host Mode Error\r\n")); - printf_P(PSTR(" -- Error Code %d\r\n"), ErrorCode); + puts_P(PSTR(ESC_FG_RED "Host Mode Error\r\n")); + printf_P(PSTR(" -- Error Code %d\r\n" ESC_FG_WHITE), ErrorCode); LEDs_SetAllLEDs(LEDMASK_USB_ERROR); for(;;); @@ -133,10 +158,10 @@ void EVENT_USB_HostError(const uint8_t ErrorCode) */ void EVENT_USB_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode) { - puts_P(PSTR(ESC_BG_RED "Dev Enum Error\r\n")); + puts_P(PSTR(ESC_FG_RED "Dev Enum Error\r\n")); printf_P(PSTR(" -- Error Code %d\r\n"), ErrorCode); printf_P(PSTR(" -- Sub Error Code %d\r\n"), SubErrorCode); - printf_P(PSTR(" -- In State %d\r\n"), USB_HostState); + printf_P(PSTR(" -- In State %d\r\n" ESC_FG_WHITE), USB_HostState); LEDs_SetAllLEDs(LEDMASK_USB_ERROR); }