Started implementing the low level PDI protocol in the AVRISP project, for XMEGA...
[pub/USBasp.git] / Demos / Host / ClassDriver / CDCHost / CDCHost.c
index 99c0c81..4b08f7d 100644 (file)
@@ -44,33 +44,16 @@ USB_ClassInfo_CDC_Host_t VirtualSerial_CDC_Interface =
        {\r
                .Config =\r
                        {\r
-                               .DataINPipeNumber       = 1,\r
-                               .DataOUTPipeNumber      = 2,\r
-                               .NotificationPipeNumber = 3,\r
-                       },\r
-       };\r
-\r
-#if 0\r
-/* NOTE: Here you can set up a standard stream using the created virtual serial port, so that the standard stream functions in\r
- *       <stdio.h> can be used on the virtual serial port (e.g. fprintf(&USBSerial, "Test"); to print a string).\r
- */\r
-\r
-static int CDC_putchar(char c, FILE *stream)\r
-{\r
-       CDC_Host_SendByte(&VirtualSerial_CDC_Interface, c);\r
-       return 0;\r
-}\r
-\r
-static int CDC_getchar(FILE *stream)\r
-{\r
-       if (!(CDC_Host_BytesReceived(&VirtualSerial_CDC_Interface)))\r
-         return -1;\r
+                               .DataINPipeNumber           = 1,\r
+                               .DataINPipeDoubleBank       = false,\r
 \r
-       return CDC_Host_ReceiveByte(&VirtualSerial_CDC_Interface);\r
-}\r
+                               .DataOUTPipeNumber          = 2,\r
+                               .DataOUTPipeDoubleBank      = false,\r
 \r
-static FILE USBSerial = FDEV_SETUP_STREAM(CDC_putchar, CDC_getchar, _FDEV_SETUP_RW);\r
-#endif\r
+                               .NotificationPipeNumber     = 3,\r
+                               .NotificationPipeDoubleBank = false,\r
+                       },\r
+       };\r
        \r
 /** Main program entry point. This routine configures the hardware required by the application, then\r
  *  enters a loop to run the application tasks in sequence.\r
@@ -93,8 +76,8 @@ int main(void)
                                uint16_t ConfigDescriptorSize;\r
                                uint8_t  ConfigDescriptorData[512];\r
 \r
-                               if (USB_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData,\r
-                                                                 sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful)\r
+                               if (USB_Host_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData,\r
+                                                                      sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful)\r
                                {\r
                                        printf("Error Retrieving Configuration Descriptor.\r\n");\r
                                        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
@@ -128,6 +111,8 @@ int main(void)
                                        /* Echo received bytes from the attached device through the USART */\r
                                        while (CDC_Host_BytesReceived(&VirtualSerial_CDC_Interface))\r
                                          putchar(CDC_Host_ReceiveByte(&VirtualSerial_CDC_Interface));\r
+                                         \r
+                                       CDC_Host_Flush(&VirtualSerial_CDC_Interface);  \r
                                }\r
                        \r
                                break;\r