|
#define | BYTE(pui8Data) (*(uint8_t *)(pui8Data)) |
|
#define | SHORT(pui8Data) (*(uint16_t *)(pui8Data)) |
|
#define | LONG(pui8Data) (*(uint32_t *)(pui8Data)) |
|
#define | USB_CDC_SUBCLASS_DIRECT_LINE_MODEL 0x01 |
|
#define | USB_CDC_SUBCLASS_ABSTRACT_MODEL 0x02 |
|
#define | USB_CDC_SUBCLASS_TELEPHONE_MODEL 0x03 |
|
#define | USB_CDC_SUBCLASS_MULTI_CHANNEL_MODEL 0x04 |
|
#define | USB_CDC_SUBCLASS_CAPI_MODEL 0x05 |
|
#define | USB_CDC_SUBCLASS_ETHERNET_MODEL 0x06 |
|
#define | USB_CDC_SUBCLASS_ATM_MODEL 0x07 |
|
#define | USB_CDC_PROTOCOL_NONE 0x00 |
|
#define | USB_CDC_PROTOCOL_NONE 0x00 |
|
#define | USB_CDC_PROTOCOL_V25TER 0x01 |
|
#define | USB_CDC_PROTOCOL_VENDOR 0xFF |
|
#define | USB_CDC_PROTOCOL_VENDOR 0xFF |
|
#define | USB_CDC_PROTOCOL_I420 0x30 |
|
#define | USB_CDC_PROTOCOL_TRANSPARENT 0x32 |
|
#define | USB_CDC_PROTOCOL_Q921M 0x50 |
|
#define | USB_CDC_PROTOCOL_Q921 0x51 |
|
#define | USB_CDC_PROTOCOL_Q921TM 0x52 |
|
#define | USB_CDC_PROTOCOL_V42BIS 0x90 |
|
#define | USB_CDC_PROTOCOL_Q921EURO 0x91 |
|
#define | USB_CDC_PROTOCOL_V120 0x92 |
|
#define | USB_CDC_PROTOCOL_CAPI20 0x93 |
|
#define | USB_CDC_PROTOCOL_HOST_DRIVER 0xFD |
|
#define | USB_CDC_PROTOCOL_CDC_SPEC 0xFE |
|
#define | USB_CDC_CS_INTERFACE 0x24 |
|
#define | USB_CDC_CS_ENDPOINT 0x25 |
|
#define | USB_CDC_FD_SUBTYPE_HEADER 0x00 |
|
#define | USB_CDC_FD_SUBTYPE_CALL_MGMT 0x01 |
|
#define | USB_CDC_FD_SUBTYPE_ABSTRACT_CTL_MGMT 0x02 |
|
#define | USB_CDC_FD_SUBTYPE_DIRECT_LINE_MGMT 0x03 |
|
#define | USB_CDC_FD_SUBTYPE_TELEPHONE_RINGER 0x04 |
|
#define | USB_CDC_FD_SUBTYPE_LINE_STATE_CAPS 0x05 |
|
#define | USB_CDC_FD_SUBTYPE_UNION 0x06 |
|
#define | USB_CDC_FD_SUBTYPE_COUNTRY 0x07 |
|
#define | USB_CDC_FD_SUBTYPE_TELEPHONE_MODES 0x08 |
|
#define | USB_CDC_FD_SUBTYPE_USB_TERMINAL 0x09 |
|
#define | USB_CDC_FD_SUBTYPE_NETWORK_TERMINAL 0x0A |
|
#define | USB_CDC_FD_SUBTYPE_PROTOCOL_UNIT 0x0B |
|
#define | USB_CDC_FD_SUBTYPE_EXTENSION_UNIT 0x0C |
|
#define | USB_CDC_FD_SUBTYPE_MULTI_CHANNEL_MGMT 0x0D |
|
#define | USB_CDC_FD_SUBTYPE_CAPI_MGMT 0x0E |
|
#define | USB_CDC_FD_SUBTYPE_ETHERNET 0x0F |
|
#define | USB_CDC_FD_SUBTYPE_ATM 0x10 |
|
#define | USB_CDC_CALL_MGMT_VIA_DATA 0x02 |
|
#define | USB_CDC_CALL_MGMT_HANDLED 0x01 |
|
#define | USB_CDC_ACM_SUPPORTS_NETWORK_CONNECTION 0x08 |
|
#define | USB_CDC_ACM_SUPPORTS_SEND_BREAK 0x04 |
|
#define | USB_CDC_ACM_SUPPORTS_LINE_PARAMS 0x02 |
|
#define | USB_CDC_ACM_SUPPORTS_COMM_FEATURE 0x01 |
|
#define | USB_CDC_DLM_NEEDS_EXTRA_PULSE_SETUP 0x04 |
|
#define | USB_CDC_DLM_SUPPORTS_AUX 0x02 |
|
#define | USB_CDC_DLM_SUPPORTS_PULSE 0x01 |
|
#define | USB_CDC_TELEPHONE_SUPPORTS_COMPUTER 0x04 |
|
#define | USB_CDC_TELEPHONE_SUPPORTS_STANDALONE 0x02 |
|
#define | USB_CDC_TELEPHONE_SUPPORTS_SIMPLE 0x01 |
|
#define | USB_CDC_LINE_STATE_CHANGES_NOTIFIED 0x20 |
|
#define | USB_CDC_LINE_STATE_REPORTS_DTMF 0x10 |
|
#define | USB_CDC_LINE_STATE_REPORTS_DIST_RING 0x08 |
|
#define | USB_CDC_LINE_STATE_REPORTS_CALLERID 0x04 |
|
#define | USB_CDC_LINE_STATE_REPORTS_BUSY 0x02 |
|
#define | USB_CDC_LINE_STATE_REPORTS_INT_DIALTONE 0x01 |
|
#define | USB_CDC_TERMINAL_NO_WRAPPER_USED 0x00 |
|
#define | USB_CDC_TERMINAL_WRAPPER_USED 0x01 |
|
#define | USB_CDC_MCM_SUPPORTS_SET_UNIT_PARAM 0x04 |
|
#define | USB_CDC_MCM_SUPPORTS_CLEAR_UNIT_PARAM 0x02 |
|
#define | USB_CDC_MCM_UNIT_PARAMS_NON_VOLATILE 0x01 |
|
#define | USB_CDC_CAPI_INTELLIGENT 0x01 |
|
#define | USB_CDC_CAPI_SIMPLE 0x00 |
|
#define | USB_CDC_ETHERNET_XMIT_OK 0x01000000 |
|
#define | USB_CDC_ETHERNET_RCV_OK 0x02000000 |
|
#define | USB_CDC_ETHERNET_XMIT_ERROR 0x04000000 |
|
#define | USB_CDC_ETHERNET_RCV_ERROR 0x08000000 |
|
#define | USB_CDC_ETHERNET_RCV_NO_BUFFER 0x10000000 |
|
#define | USB_CDC_ETHERNET_DIRECTED_BYTES_XMIT 0x20000000 |
|
#define | USB_CDC_ETHERNET_DIRECTED_FRAMES_XMIT 0x40000000 |
|
#define | USB_CDC_ETHERNET_MULTICAST_BYTES_XMIT 0x80000000 |
|
#define | USB_CDC_ETHERNET_MULTICAST_FRAMES_XMIT 0x00010000 |
|
#define | USB_CDC_ETHERNET_BROADCAST_BYTES_XMIT 0x00020000 |
|
#define | USB_CDC_ETHERNET_BROADCAST_FRAMES_XMIT 0x00040000 |
|
#define | USB_CDC_ETHERNET_DIRECTED_BYTES_RCV 0x00080000 |
|
#define | USB_CDC_ETHERNET_DIRECTED_FRAMES_RCV 0x00100000 |
|
#define | USB_CDC_ETHERNET_MULTICAST_BYTES_RCV 0x00200000 |
|
#define | USB_CDC_ETHERNET_MULTICAST_FRAMES_RCV 0x00400000 |
|
#define | USB_CDC_ETHERNET_BROADCAST_BYTES_RCV 0x00800000 |
|
#define | USB_CDC_ETHERNET_BROADCAST_FRAMES_RCV 0x00000100 |
|
#define | USB_CDC_ETHERNET_RCV_CRC_ERROR 0x00000200 |
|
#define | USB_CDC_ETHERNET_TRANSMIT_QUEUE_LENGTH 0x00000400 |
|
#define | USB_CDC_ETHERNET_RCV_ERROR_ALIGNMENT 0x00000800 |
|
#define | USB_CDC_ETHERNET_XMIT_ONE_COLLISION 0x00001000 |
|
#define | USB_CDC_ETHERNET_XMIT_MORE_COLLISIONS 0x00002000 |
|
#define | USB_CDC_ETHERNET_XMIT_DEFERRED 0x00004000 |
|
#define | USB_CDC_ETHERNET_XMIT_MAX_COLLISIONS 0x00008000 |
|
#define | USB_CDC_ETHERNET_RCV_OVERRUN 0x00000001 |
|
#define | USB_CDC_ETHERNET_XMIT_UNDERRUN 0x00000002 |
|
#define | USB_CDC_ETHERNET_XMIT_HEARTBEAT_FAILURE 0x00000004 |
|
#define | USB_CDC_ETHERNET_XMIT_TIMES_CRS_LOST 0x00000010 |
|
#define | USB_CDC_ATM_TYPE_3 0x08 |
|
#define | USB_CDC_ATM_TYPE_2 0x04 |
|
#define | USB_CDC_ATM_TYPE_1 0x02 |
|
#define | USB_CDC_ATM_VC_US_CELLS_SENT 0x10 |
|
#define | USB_CDC_ATM_VC_US_CELLS_RECEIVED 0x08 |
|
#define | USB_CDC_ATM_DS_CELLS_HEC_ERR_CORRECTED 0x04 |
|
#define | USB_CDC_ATM_US_CELLS_SENT 0x02 |
|
#define | USB_CDC_ATM_US_CELLS_RECEIVED 0x01 |
|
#define | USB_CDC_SEND_ENCAPSULATED_COMMAND 0x00 |
|
#define | USB_CDC_GET_ENCAPSULATED_RESPONSE 0x01 |
|
#define | USB_CDC_SET_COMM_FEATURE 0x02 |
|
#define | USB_CDC_GET_COMM_FEATURE 0x03 |
|
#define | USB_CDC_CLEAR_COMM_FEATURE 0x04 |
|
#define | USB_CDC_SET_AUX_LINE_STATE 0x10 |
|
#define | USB_CDC_SET_HOOK_STATE 0x11 |
|
#define | USB_CDC_PULSE_SETUP 0x12 |
|
#define | USB_CDC_SEND_PULSE 0x13 |
|
#define | USB_CDC_SET_PULSE_TIME 0x14 |
|
#define | USB_CDC_RING_AUX_JACK 0x15 |
|
#define | USB_CDC_SET_LINE_CODING 0x20 |
|
#define | USB_CDC_GET_LINE_CODING 0x21 |
|
#define | USB_CDC_SET_CONTROL_LINE_STATE 0x22 |
|
#define | USB_CDC_SEND_BREAK 0x23 |
|
#define | USB_CDC_SET_RINGER_PARMS 0x30 |
|
#define | USB_CDC_GET_RINGER_PARMS 0x31 |
|
#define | USB_CDC_SET_OPERATION_PARMS 0x32 |
|
#define | USB_CDC_GET_OPERATION_PARMS 0x33 |
|
#define | USB_CDC_SET_LINE_PARMS 0x34 |
|
#define | USB_CDC_GET_LINE_PARMS 0x35 |
|
#define | USB_CDC_DIAL_DIGITS 0x36 |
|
#define | USB_CDC_SET_UNIT_PARAMETER 0x37 |
|
#define | USB_CDC_GET_UNIT_PARAMETER 0x38 |
|
#define | USB_CDC_CLEAR_UNIT_PARAMETER 0x39 |
|
#define | USB_CDC_GET_PROFILE 0x3A |
|
#define | USB_CDC_SET_ETHERNET_MULTICAST_FILTERS 0x40 |
|
#define | USB_CDC_SET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER 0x41 |
|
#define | USB_CDC_GET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER 0x42 |
|
#define | USB_CDC_SET_ETHERNET_PACKET_FILTER 0x43 |
|
#define | USB_CDC_GET_ETHERNET_STATISTIC 0x44 |
|
#define | USB_CDC_SET_ATM_DATA_FORMAT 0x50 |
|
#define | USB_CDC_GET_ATM_DEVICE_STATISTICS 0x51 |
|
#define | USB_CDC_SET_ATM_DEFAULT_VC 0x52 |
|
#define | USB_CDC_GET_ATM_VC_STATISTICS 0x53 |
|
#define | USB_CDC_SIZE_COMM_FEATURE 2 |
|
#define | USB_CDC_SIZE_LINE_CODING 7 |
|
#define | USB_CDC_SIZE_RINGER_PARMS 4 |
|
#define | USB_CDC_SIZE_OPERATION_PARMS 2 |
|
#define | USB_CDC_SIZE_UNIT_PARAMETER 2 |
|
#define | USB_CDC_SIZE_PROFILE 64 |
|
#define | USB_CDC_SIZE_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER 2 |
|
#define | USB_CDC_SIZE_ETHERNET_STATISTIC 4 |
|
#define | USB_CDC_SIZE_ATM_DEVICE_STATISTICS 4 |
|
#define | USB_CDC_SIZE_ATM_VC_STATISTICS 4 |
|
#define | USB_CDC_SIZE_LINE_PARMS 10 |
|
#define | USB_CDC_ABSTRACT_STATE 0x0001 |
|
#define | USB_CDC_COUNTRY_SETTING 0x0002 |
|
#define | USB_CDC_ABSTRACT_CALL_DATA_MULTIPLEXED 0x0002 |
|
#define | USB_CDC_ABSTRACT_ENDPOINTS_IDLE 0x0001 |
|
#define | SetResponseCommFeature(pi8Buf, ui16Data) |
|
#define | USB_CDC_AUX_DISCONNECT 0x0000 |
|
#define | USB_CDC_AUX_CONNECT 0x0001 |
|
#define | USB_CDC_ON_HOOK 0x0000 |
|
#define | USB_CDC_OFF_HOOK 0x0001 |
|
#define | USB_CDC_SNOOPING 0x0002 |
|
#define | USB_CDC_STOP_BITS_1 0x00 |
|
#define | USB_CDC_STOP_BITS_1_5 0x01 |
|
#define | USB_CDC_STOP_BITS_2 0x02 |
|
#define | USB_CDC_PARITY_NONE 0x00 |
|
#define | USB_CDC_PARITY_ODD 0x01 |
|
#define | USB_CDC_PARITY_EVEN 0x02 |
|
#define | USB_CDC_PARITY_MARK 0x03 |
|
#define | USB_CDC_PARITY_SPACE 0x04 |
|
#define | SetResponseLineCoding(pi8Buf, ui8Rate, ui8Stop, ui8Parity, ui8Databits) |
|
#define | USB_CDC_DEACTIVATE_CARRIER 0x00 |
|
#define | USB_CDC_ACTIVATE_CARRIER 0x02 |
|
#define | USB_CDC_DTE_NOT_PRESENT 0x00 |
|
#define | USB_CDC_DTE_PRESENT 0x01 |
|
#define | USB_CDC_RINGER_EXISTS 0x80000000 |
|
#define | USB_CDC_RINGER_DOES_NOT_EXIST 0x00000000 |
|
#define | SetResponseRingerParms(pi8Buf, ui8Pattern, ui8Volume, ui32Exists) |
|
#define | GetRingerVolume(pi8Data) (BYTE((pi8Data) + 1)) |
|
#define | GetRingerPattern(pi8Data) (BYTE(pi8Data)) |
|
#define | GetRingerExists(pi8Data) ((LONG(pi8Data)) & USB_CDC_RINGER_EXISTS) |
|
#define | USB_CDC_SIMPLE_MODE 0x0000 |
|
#define | USB_CDC_STANDALONE_MODE 0x0001 |
|
#define | USB_CDC_HOST_CENTRIC_MODE 0x0002 |
|
#define | SetResponseOperationParms(pi8Bbuf, ui16Data) |
|
#define | USB_CDC_DROP_ACTIVE_CALL 0x0000 |
|
#define | USB_CDC_START_NEW_CALL 0x0001 |
|
#define | USB_CDC_APPLY_RINGING 0x0002 |
|
#define | USB_CDC_REMOVE_RINGING 0x0003 |
|
#define | USB_CDC_SWITCH_CALL 0x0004 |
|
#define | USB_CDC_LINE_IS_ACTIVE 0x80000000 |
|
#define | USB_CDC_LINE_IS_IDLE 0x00000000 |
|
#define | USB_CDC_LINE_NO_ACTIVE_CALL 0x000000FF |
|
#define | USB_CDC_CALL_ACTIVE 0x80000000 |
|
#define | USB_CDC_CALL_IDLE 0x00000000 |
|
#define | USB_CDC_CALL_TYPICAL_DIALTONE 0x00000001 |
|
#define | USB_CDC_CALL_INTERRUPTED_DIALTONE 0x00000002 |
|
#define | USB_CDC_CALL_DIALING 0x00000003 |
|
#define | USB_CDC_CALL_RINGBACK 0x00000004 |
|
#define | USB_CDC_CALL_CONNECTED 0x00000005 |
|
#define | USB_CDC_CALL_INCOMING 0x00000006 |
|
#define | USB_CDC_CALL_STATE_IDLE 0x01 |
|
#define | USB_CDC_CALL_STATE_DIALING 0x02 |
|
#define | USB_CDC_CALL_STATE_RINGBACK 0x03 |
|
#define | USB_CDC_CALL_STATE_CONNECTED 0x04 |
|
#define | USB_CDC_CALL_STATE_INCOMING 0x05 |
|
#define | USB_CDC_VOICE 0x00 |
|
#define | USB_CDC_ANSWERING_MACHINE 0x01 |
|
#define | USB_CDC_FAX 0x02 |
|
#define | USB_CDC_MODEM 0x03 |
|
#define | USB_CDC_UNKNOWN 0xFF |
|
#define | GetCallIndex(pi8Data) (BYTE(pi8Data)) |
|
#define | SetResponseCallState(pi8Buf, ui8Index, ui32Active, ui8StateChange, ui8State) |
|
#define | SetResponseLineParms(pi8Buf, ui16Length, ui8RingPattern, ui8RingVolume, ui32RingExists, ui32LineActive, ui8LineCallIndex, ui32CallActive, ui8CallStateChange, ui8CallState) |
|
#define | USB_CDC_NOTIFY_NETWORK_CONNECTION 0x00 |
|
#define | USB_CDC_NOTIFY_RESPONSE_AVAILABLE 0x01 |
|
#define | USB_CDC_NOTIFY_AUX_JACK_HOOK_STATE 0x08 |
|
#define | USB_CDC_NOTIFY_RING_DETECT 0x09 |
|
#define | USB_CDC_NOTIFY_SERIAL_STATE 0x20 |
|
#define | USB_CDC_NOTIFY_CALL_STATE_CHANGE 0x28 |
|
#define | USB_CDC_NOTIFY_LINE_STATE_CHANGE 0x29 |
|
#define | USB_CDC_NOTIFY_CONNECTION_SPEED_CHANGE 0x2A |
|
#define | USB_CDC_NETWORK_DISCONNECTED 0x0000 |
|
#define | USB_CDC_NETWORK_CONNECTED 0x0001 |
|
#define | USB_CDC_AUX_JACK_ON_HOOK 0x0000 |
|
#define | USB_CDC_AUX_JACK_OFF_HOOK 0x0001 |
|
#define | USB_CDC_NOTIFY_SERIAL_STATE_SIZE 2 |
|
#define | USB_CDC_SERIAL_STATE_OVERRUN 0x0040 |
|
#define | USB_CDC_SERIAL_STATE_PARITY 0x0020 |
|
#define | USB_CDC_SERIAL_STATE_FRAMING 0x0010 |
|
#define | USB_CDC_SERIAL_STATE_RING_SIGNAL 0x0008 |
|
#define | USB_CDC_SERIAL_STATE_BREAK 0x0004 |
|
#define | USB_CDC_SERIAL_STATE_TXCARRIER 0x0002 |
|
#define | USB_CDC_SERIAL_STATE_RXCARRIER 0x0001 |
|
#define | SetNotifyCallStatewValue(pi16Result, ui8CallState, ui8Index) |
|
#define | USB_CDC_LINE_STATE_IDLE 0x0000 |
|
#define | USB_CDC_LINE_STATE_HOLD 0x0001 |
|
#define | USB_CDC_LINE_STATE_OFF_HOOK 0x0002 |
|
#define | USB_CDC_LINE_STATE_ON_HOOK 0x0003 |
|
#define | SetNotifyConnectionSpeedChange(pi8Buf, ui32USBitRate, ui32DSBitRate) |
|
#define | USB_RX_ERROR_FLAGS |
|
#define | MAX_REQUEST_DATA_SIZE sizeof(tLineCoding) |
|
#define | CDC_DO_SERIAL_STATE_CHANGE 0 |
|
#define | CDC_DO_SEND_BREAK 1 |
|
#define | CDC_DO_CLEAR_BREAK 2 |
|
#define | CDC_DO_LINE_CODING_CHANGE 3 |
|
#define | CDC_DO_LINE_STATE_CHANGE 4 |
|
#define | CDC_DO_PACKET_RX 5 |
|
#define | RX_BLOCK_OPS |
|
#define | CONTROL_ENDPOINT USB_EP_1 |
|
#define | DATA_IN_ENDPOINT USB_EP_2 |
|
#define | DATA_OUT_ENDPOINT USB_EP_1 |
|
#define | SERIAL_INTERFACE_CONTROL 0 |
|
#define | SERIAL_INTERFACE_DATA 1 |
|
#define | DATA_IN_EP_MAX_SIZE USBFIFOSizeToBytes(USB_FIFO_SZ_64) |
|
#define | DATA_OUT_EP_MAX_SIZE USBFIFOSizeToBytes(USB_FIFO_SZ_64) |
|
#define | DATA_IN_EP_MAX_SIZE_HS USBFIFOSizeToBytes(USB_FIFO_SZ_512) |
|
#define | DATA_OUT_EP_MAX_SIZE_HS USBFIFOSizeToBytes(USB_FIFO_SZ_512) |
|
#define | CTL_IN_EP_MAX_SIZE USBFIFOSizeToBytes(USB_FIFO_SZ_16) |
|
#define | USB_CDC_SERIAL_ERRORS |
|
#define | NUM_CDCSER_SECTIONS |
|
#define | NUM_COMP_CDCSER_SECTIONS |
|
#define | SERDESCRIPTOR_SIZE (8) |
|
#define | SERCOMMINTERFACE_SIZE (35) |
|
#define | SERDATAINTERFACE_SIZE (23) |
|
#define | COMPOSITE_DCDC_SIZE |
|
#define | USBD_CDC_EVENT_SEND_BREAK (USBD_CDC_EVENT_BASE + 0) |
|
#define | USBD_CDC_EVENT_CLEAR_BREAK (USBD_CDC_EVENT_BASE + 1) |
|
#define | USBD_CDC_EVENT_SET_CONTROL_LINE_STATE (USBD_CDC_EVENT_BASE + 2) |
|
#define | USBD_CDC_EVENT_SET_LINE_CODING (USBD_CDC_EVENT_BASE + 3) |
|
#define | USBD_CDC_EVENT_GET_LINE_CODING (USBD_CDC_EVENT_BASE + 4) |
|
void * USBDCDCInit |
( |
uint32_t |
ui32Index, |
|
|
tUSBDCDCDevice * |
psCDCDevice |
|
) |
| |
Initializes CDC device operation for a given USB controller.
- Parameters
-
ui32Index | is the index of the USB controller which is to be initialized for CDC device operation. |
psCDCDevice | points to a structure containing parameters customizing the operation of the CDC device. |
An application wishing to make use of a USB CDC communication channel and appear as a virtual serial port on the host system must call this function to initialize the USB controller and attach the device to the USB bus. This function performs all required USB initialization.
The value returned by this function is the psCDCDevice pointer passed to it if successful. This pointer must be passed to all later calls to the CDC class driver to identify the device instance.
The USB CDC device class driver offers packet-based transmit and receive operation. If the application would rather use block based communication with transmit and receive buffers, USB buffers on the transmit and receive channels may be used to offer this functionality.
Transmit Operation:
Calls to USBDCDCPacketWrite() must send no more than 64 bytes of data at a time and may only be made when no other transmission is currently outstanding.
Once a packet of data has been acknowledged by the USB host, a USB_EVENT_TX_COMPLETE event is sent to the application callback to inform it that another packet may be transmitted.
Receive Operation:
An incoming USB data packet will result in a call to the application callback with event USB_EVENT_RX_AVAILABLE. The application must then call USBDCDCPacketRead(), passing a buffer capable of holding the received packet to retrieve the data and acknowledge reception to the USB host. The size of the received packet may be queried by calling USBDCDCRxPacketAvailable().
- Note
- The application must not make any calls to the low level USB Device API if interacting with USB via the CDC device class API. Doing so will cause unpredictable (though almost certainly unpleasant) behavior.
- Returns
- Returns NULL on failure or the psCDCDevice pointer on success.
References CONTROL_ENDPOINT, g_ppCDCSerConfigDescriptors, g_pui8CDCSerDescriptor, g_pui8CDCSerDeviceDescriptor, tDeviceInfo::ppsConfigDescriptors, tCDCSerInstance::sDevInfo, tUSBDCDCDevice::sPrivateData, tUSBDCDCDevice::ui16MaxPowermA, tUSBDCDCDevice::ui16PID, tUSBDCDCDevice::ui16VID, tCDCSerInstance::ui8ControlEndpoint, tUSBDCDCDevice::ui8PwrAttributes, USBDCDCCompositeInit(), and USBDCDInit().