Minor documentation enhancements.
[pub/USBasp.git] / Demos / Device / ClassDriver / DualVirtualSerial / DualVirtualSerial.c
index cc8f92c..915c8fc 100644 (file)
@@ -101,12 +101,12 @@ int main(void)
                CheckJoystickMovement();
 
                /* Discard all received data on the first CDC interface */
-               while (CDC_Device_BytesReceived(&VirtualSerial1_CDC_Interface))
-                 CDC_Device_ReceiveByte(&VirtualSerial1_CDC_Interface);
+               CDC_Device_ReceiveByte(&VirtualSerial1_CDC_Interface);
 
                /* Echo all received data on the second CDC interface */
-               while (CDC_Device_BytesReceived(&VirtualSerial2_CDC_Interface))
-                 CDC_Device_SendByte(&VirtualSerial2_CDC_Interface, CDC_Device_ReceiveByte(&VirtualSerial2_CDC_Interface));
+               int16_t ReceivedByte = CDC_Device_ReceiveByte(&VirtualSerial2_CDC_Interface);
+               if (!(ReceivedByte < 0))
+                 CDC_Device_SendByte(&VirtualSerial2_CDC_Interface, (uint8_t)ReceivedByte);
                  
                CDC_Device_USBTask(&VirtualSerial1_CDC_Interface);
                CDC_Device_USBTask(&VirtualSerial2_CDC_Interface);
@@ -175,13 +175,12 @@ void EVENT_USB_Device_Disconnect(void)
 /** Event handler for the library USB Configuration Changed event. */
 void EVENT_USB_Device_ConfigurationChanged(void)
 {
-       LEDs_SetAllLEDs(LEDMASK_USB_READY);
+       bool ConfigSuccess = true;
 
-       if (!(CDC_Device_ConfigureEndpoints(&VirtualSerial1_CDC_Interface)))
-         LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+       ConfigSuccess &= CDC_Device_ConfigureEndpoints(&VirtualSerial1_CDC_Interface);
+       ConfigSuccess &= CDC_Device_ConfigureEndpoints(&VirtualSerial2_CDC_Interface);
 
-       if (!(CDC_Device_ConfigureEndpoints(&VirtualSerial2_CDC_Interface)))
-         LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+       LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR);
 }
 
 /** Event handler for the library USB Unhandled Control Request event. */