Data Structures |
struct | USB_ClassInfo_CDC_Host_t |
Enumerations |
enum | CDCHost_EnumerationFailure_ErrorCodes_t {
CDC_ENUMERROR_NoError = 0,
CDC_ENUMERROR_InvalidConfigDescriptor = 1,
CDC_ENUMERROR_NoCDCInterfaceFound = 2,
CDC_ENUMERROR_EndpointsNotFound = 3
} |
Functions |
void | CDC_Host_USBTask (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | CDC_Host_ConfigurePipes (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, uint16_t ConfigDescriptorSize, void *DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3) |
uint8_t | CDC_Host_SetLineEncoding (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | CDC_Host_SendControlLineStateChange (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | CDC_Host_SendString (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, char *Data, const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2) |
uint8_t | CDC_Host_SendByte (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, const uint8_t Data) ATTR_NON_NULL_PTR_ARG(1) |
uint16_t | CDC_Host_BytesReceived (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | CDC_Host_ReceiveByte (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
void | CDC_Host_CreateStream (USB_ClassInfo_CDC_Host_t *CDCInterfaceInfo, FILE *Stream) |
void | CDC_Host_CreateBlockingStream (USB_ClassInfo_CDC_Host_t *CDCInterfaceInfo, FILE *Stream) |
void | EVENT_CDC_Host_ControLineStateChanged (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
Detailed Description
The following files must be built with any user project that uses this module:
- LUFA/Drivers/USB/Class/Host/CDC.c
Host Mode USB Class driver framework interface, for the CDC USB Class driver.
Enumeration Type Documentation
Enum for the possible error codes returned by the CDC_Host_ConfigurePipes() function.
- Enumerator:
CDC_ENUMERROR_NoError |
Configuration Descriptor was processed successfully
|
CDC_ENUMERROR_InvalidConfigDescriptor |
The device returned an invalid Configuration Descriptor
|
CDC_ENUMERROR_NoCDCInterfaceFound |
A compatible CDC interface was not found in the device's Configuration Descriptor
|
CDC_ENUMERROR_EndpointsNotFound |
Compatible CDC endpoints were not found in the device's CDC interface
|
Function Documentation
Determines the number of bytes received by the CDC interface from the device, waiting to be read.
- Parameters:
-
[in,out] | CDCInterfaceInfo | Pointer to a structure containing a CDC Class host configuration and state |
- Returns:
- Total number of buffered bytes received from the device
uint8_t CDC_Host_ConfigurePipes |
( |
USB_ClassInfo_CDC_Host_t *const |
CDCInterfaceInfo, |
|
|
uint16_t |
ConfigDescriptorSize, |
|
|
void * |
DeviceConfigDescriptor | |
|
) |
| | |
Host interface configuration routine, to configure a given CDC host interface instance using the Configuration Descriptor read from an attached USB device. This function automatically updates the given CDC Host instance's state values and configures the pipes required to communicate with the interface if it is found within the device. This should be called once after the stack has enumerated the attached device, while the host state machine is in the Addressed state.
- Parameters:
-
[in,out] | CDCInterfaceInfo | Pointer to a structure containing an CDC Class host configuration and state |
[in] | ConfigDescriptorSize | Length of the attached device's Configuration Descriptor |
[in] | DeviceConfigDescriptor | Pointer to a buffer containing the attached device's Configuration Descriptor |
- Returns:
- A value from the CDCHost_EnumerationFailure_ErrorCodes_t enum
Identical to CDC_Host_CreateStream(), except that reads are blocking until the calling stream function terminates the transfer. While blocking, the USB and CDC service tasks are called repeatedly to maintain USB communications.
- Parameters:
-
[in,out] | CDCInterfaceInfo | Pointer to a structure containing a CDC Class configuration and state |
[in,out] | Stream | Pointer to a FILE structure where the created stream should be placed |
Creates a standard characer stream for the given CDC Device instance so that it can be used with all the regular functions in the avr-libc <stdio.h> library that accept a FILE stream as a destination (e.g. fprintf).
- Note:
- The created stream can be given as stdout if desired to direct the standard output from all <stdio.h> functions to the given CDC interface.
- Parameters:
-
[in,out] | CDCInterfaceInfo | Pointer to a structure containing a CDC Class configuration and state |
[in,out] | Stream | Pointer to a FILE structure where the created stream should be placed |
Reads a byte of data from the device. If no data is waiting to be read of if a USB device is not connected, the function returns 0. The CDC_Host_BytesReceived() function should be queried before data is received to ensure that no data underflow occurs.
- Parameters:
-
[in,out] | CDCInterfaceInfo | Pointer to a structure containing a CDC Class host configuration and state |
- Returns:
- Next received byte from the device, or 0 if no data received
Sends a given byte to the attached USB device, if connected. If a host is not connected when the function is called, the byte is discarded.
- Parameters:
-
[in,out] | CDCInterfaceInfo | Pointer to a structure containing a CDC Class host configuration and state |
[in] | Data | Byte of data to send to the device |
- Returns:
- A value from the Pipe_WaitUntilReady_ErrorCodes_t enum
Sends a Serial Control Line State Change notification to the device. This should be called when the virtual serial control lines (DTR, RTS, etc.) have changed states. Line states persist until they are cleared via a second notification. This should be called each time the CDC class driver's ControlLineStates.HostToDevice value is updated to push the new states to the USB device.
- Parameters:
-
[in,out] | CDCInterfaceInfo | Pointer to a structure containing a CDC Class host configuration and state |
- Returns:
- A value from the USB_Host_SendControlErrorCodes_t enum
Sends a given string to the attached USB device, if connected. If a device is not connected when the function is called, the string is discarded.
- Parameters:
-
[in,out] | CDCInterfaceInfo | Pointer to a structure containing a CDC Class host configuration and state |
[in] | Data | Pointer to the string to send to the device |
[in] | Length | Size in bytes of the string to send to the device |
- Returns:
- A value from the Pipe_Stream_RW_ErrorCodes_t enum
Sets the line encoding for the attached device's virtual serial port. This should be called when the LineEncoding values of the interface have been changed to push the new settings to the USB device.
- Parameters:
-
[in,out] | CDCInterfaceInfo | Pointer to a structure containing a CDC Class host configuration and state |
- Returns:
- A value from the USB_Host_SendControlErrorCodes_t enum
General management task for a given CDC host class interface, required for the correct operation of the interface. This should be called frequently in the main program loop, before the master USB management task USB_USBTask().
- Parameters:
-
[in,out] | CDCInterfaceInfo | Pointer to a structure containing an CDC Class host configuration and state |
CDC class driver event for a control line state change on a CDC host interface. This event fires each time the device notifies the host of a control line state change (containing the virtual serial control line states, such as DCD) and may be hooked in the user program by declaring a handler function with the same name and parameters listed here. The new control line states are available in the ControlLineStates.DeviceToHost value inside the CDC host interface structure passed as a parameter, set as a mask of CDC_CONTROL_LINE_IN_* masks.
- Parameters:
-
[in,out] | CDCInterfaceInfo | Pointer to a structure containing a CDC Class host configuration and state |