aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Host/ClassDriver/CDCHost/CDCHost.c
diff options
context:
space:
mode:
Diffstat (limited to 'Demos/Host/ClassDriver/CDCHost/CDCHost.c')
-rw-r--r--Demos/Host/ClassDriver/CDCHost/CDCHost.c109
1 files changed, 0 insertions, 109 deletions
diff --git a/Demos/Host/ClassDriver/CDCHost/CDCHost.c b/Demos/Host/ClassDriver/CDCHost/CDCHost.c
index 9a5e81ae4..9a9d8a71f 100644
--- a/Demos/Host/ClassDriver/CDCHost/CDCHost.c
+++ b/Demos/Host/ClassDriver/CDCHost/CDCHost.c
@@ -50,7 +50,6 @@ int main(void)
for (;;)
{
- CDC_Host_Task();
USB_USBTask();
}
}
@@ -121,111 +120,3 @@ void EVENT_USB_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t Su
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
}
-
-/** Task to set the configuration of the attached device after it has been enumerated, and to read in
- * data received from the attached CDC device and print it to the serial port.
- */
-void CDC_Host_Task(void)
-{
- uint8_t ErrorCode;
-
- switch (USB_HostState)
- {
- case HOST_STATE_Addressed:
- /* Standard request to set the device configuration to configuration 1 */
- USB_ControlRequest = (USB_Request_Header_t)
- {
- .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE),
- .bRequest = REQ_SetConfiguration,
- .wValue = 1,
- .wIndex = 0,
- .wLength = 0,
- };
-
- /* Select the control pipe for the request transfer */
- Pipe_SelectPipe(PIPE_CONTROLPIPE);
-
- /* Send the request, display error and wait for device detach if request fails */
- if ((ErrorCode = USB_Host_SendControlRequest(NULL)) != HOST_SENDCONTROL_Successful)
- {
- puts_P(PSTR("Control Error (Set Configuration).\r\n"));
- printf_P(PSTR(" -- Error Code: %d\r\n"), ErrorCode);
-
- /* Indicate error via status LEDs */
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-
- /* Wait until USB device disconnected */
- while (USB_IsConnected);
- break;
- }
-
- USB_HostState = HOST_STATE_Configured;
- break;
- case HOST_STATE_Configured:
- puts_P(PSTR("Getting Config Data.\r\n"));
-
- /* Get and process the configuration descriptor data */
- if ((ErrorCode = ProcessConfigurationDescriptor()) != SuccessfulConfigRead)
- {
- if (ErrorCode == ControlError)
- puts_P(PSTR("Control Error (Get Configuration).\r\n"));
- else
- puts_P(PSTR("Invalid Device.\r\n"));
-
- printf_P(PSTR(" -- Error Code: %d\r\n"), ErrorCode);
-
- /* Indicate error via status LEDs */
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-
- /* Wait until USB device disconnected */
- while (USB_IsConnected);
- break;
- }
-
- puts_P(PSTR("CDC Device Enumerated.\r\n"));
-
- USB_HostState = HOST_STATE_Ready;
- break;
- case HOST_STATE_Ready:
- /* Select and the data IN pipe */
- Pipe_SelectPipe(CDC_DATAPIPE_IN);
-
- /* Check to see if a packet has been received */
- if (Pipe_IsINReceived())
- {
- /* Check if data is in the pipe */
- if (Pipe_IsReadWriteAllowed())
- {
- /* Get the length of the pipe data, and create a new buffer to hold it */
- uint16_t BufferLength = Pipe_BytesInPipe();
- uint8_t Buffer[BufferLength];
-
- /* Read in the pipe data to the temporary buffer */
- Pipe_Read_Stream_LE(Buffer, BufferLength);
-
- /* Print out the buffer contents to the USART */
- for (uint16_t BufferByte = 0; BufferByte < BufferLength; BufferByte++)
- putchar(Buffer[BufferByte]);
- }
-
- /* Clear the pipe after it is read, ready for the next packet */
- Pipe_ClearIN();
- }
-
- /* Select and unfreeze the notification pipe */
- Pipe_SelectPipe(CDC_NOTIFICATIONPIPE);
- Pipe_Unfreeze();
-
- /* Check if a packet has been received */
- if (Pipe_IsINReceived())
- {
- /* Discard the unused event notification */
- Pipe_ClearIN();
- }
-
- /* Freeze notification IN pipe after use */
- Pipe_Freeze();
-
- break;
- }
-}