Difference between revisions of "Unit USBCDC"
(One intermediate revision by the same user not shown) | |||
Line 383: | Line 383: | ||
---- | ---- | ||
− | '' | + | |
+ | '''CDC descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCDescriptor = ^TUSBCDCDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC header descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCHeaderDescriptor = ^TUSBCDCHeaderDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCHeaderDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 5.2.3.1 of USB Class Definitions for Communications Devices 1.2 | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bcdCDC:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC call management descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCCallManagementDescriptor = ^TUSBCDCCallManagementDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCCallManagementDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 5.2.3.2 of USB Class Definitions for Communications Devices 1.2 | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bmCapabilities:Byte;</code> | ||
+ | | See USB_CDC_CALL_MGMT_CAP_* | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC abstract control management descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCACMDescriptor = ^TUSBCDCACMDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCACMDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 5.2.3.3 of USB Class Definitions for Communications Devices 1.2 | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bmCapabilities:Byte;</code> | ||
+ | | See USB_CDC_ACM_* | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC union descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCUnionDescriptor = ^TUSBCDCUnionDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCUnionDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 5.2.3.8 of USB Class Definitions for Communications Devices 1.2 | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bMasterInterface0:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bSlaveInterface0:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|''Additional Slave interfaces dependent on bFunctionLength'' | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC country descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCCountryDescriptor = ^TUSBCDCCountryDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCCountryDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 5.2.3.9 of USB Class Definitions for Communications Devices 1.2 | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>iCountryCodeRelDate:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>wCountyCode0:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | |colspan="2"|''Additional Country codes dependent on bFunctionLength'' | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC network terminal descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCNetworkTerminalDescriptor = ^TUSBCDCNetworkTerminalDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCNetworkTerminalDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 5.2.3.11 of USB Class Definitions for Communications Devices 1.2 | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bEntityId:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>iName:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bChannelIndex:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bPhysicalInterface:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC ethernet descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCEthernetDescriptor = ^TUSBCDCEthernetDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCEthernetDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 5.4 of USB Communications Class Subclass Specification for Ethernet Control Model Devices 1.2 | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>iMACAddress:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bmEthernetStatistics:LongWord;</code> | ||
+ | | LE32 | ||
+ | |- | ||
+ | | <code>wMaxSegmentSize:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | | <code>wNumberMCFilters:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | | <code>bNumberPowerFilters:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC telephone control model descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCTCMDescriptor = ^TUSBCDCTCMDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCTCMDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 6.3.2.3 of USB CDC Subclass Specification for Wireless Mobile Communications Devices 1.1 | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bcdVersion:Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>wMaxCommand:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC MDLM descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCMDLMDescriptor = ^TUSBCDCMDLMDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCMDLMDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 6.7.2.3 of USB CDC Subclass Specification for Wireless Mobile Communications Devices 1.1 | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bcdVersion:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | | <code>bGUID:array[0..15] of Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC MDLM detail descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCMDLMDetailDescriptor = ^TUSBCDCMDLMDetailDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCMDLMDetailDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 6.7.2.4 of USB CDC Subclass Specification for Wireless Mobile Communications Devices 1.1 | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bGuidDescriptorType:Byte;</code> | ||
+ | | Associated with TUSBCDCMDLMDescriptor.bGUID | ||
+ | |- | ||
+ | | <code>bDetailData:array[0..0] of Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC OBEX descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCOBEXDescriptor = ^TUSBCDCOBEXDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCOBEXDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 6.5.2.3 of USB CDC Subclass Specification for Wireless Mobile Communications Devices 1.1 | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bcdVersion:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC NCM descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCNCMDescriptor = ^TUSBCDCNCMDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCNCMDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bcdNcmVersion:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | | <code>bmNetworkCapabilities:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC MBIM descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCMBIMDescriptor = ^TUSBCDCMBIMDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCMBIMDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bcdMBIMVersion:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | | <code>wMaxControlMessage:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | | <code>bNumberFilters:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bMaxFilterSize:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>wMaxSegmentSize:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | | <code>bmNetworkCapabilities:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC MBIM extended descriptor''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCMBIMExtendedDescriptor = ^TUSBCDCMBIMExtendedDescriptor;</code> | ||
+ | |||
+ | <code>TUSBCDCMBIMExtendedDescriptor = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|''Device Properties'' | ||
+ | |- | ||
+ | | <code>bFunctionLength:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescriptorSubType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>bcdMBIMExtendedVersion:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | | <code>bMaxOutstandingCommandMessages:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>wMTU:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC line coding''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCLineCoding = ^TUSBCDCLineCoding;</code> | ||
+ | |||
+ | <code>TUSBCDCLineCoding = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 6.3.11 of USB Communications Class Subclass Specification for PSTN Devices 1.2 | ||
+ | |- | ||
+ | | <code>dwDTERate:LongWord;</code> | ||
+ | | LE32 | ||
+ | |- | ||
+ | | <code>bCharFormat:Byte;</code> | ||
+ | | See USB_CDC_1_STOP_BITS etc | ||
+ | |- | ||
+ | | <code>bParityType:Byte;</code> | ||
+ | | See USB_CDC_NO_PARITY etc | ||
+ | |- | ||
+ | | <code>bDataBits:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC notification''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCNotification = ^TUSBCDCNotification;</code> | ||
+ | |||
+ | <code>TUSBCDCNotification = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 6.3 of USB Class Definitions for Communications Devices 1.2 | ||
+ | |- | ||
+ | | <code>bmRequestType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bNotificationType:Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>wValue:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | | <code>wIndex:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | | <code>wLength:Word;</code> | ||
+ | | LE16 | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC connection speed change''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCSpeedChange = ^TUSBCDCSpeedChange;</code> | ||
+ | |||
+ | <code>TUSBCDCSpeedChange = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|See: Section 6.3.3 of USB Class Definitions for Communications Devices 1.2 | ||
+ | |- | ||
+ | | <code>DLBitRRate:LongWord;</code> | ||
+ | | LE32 Contains the downlink bit rate, in bits per second, as sent on the IN pipe. | ||
+ | |- | ||
+ | | <code>ULBitRate:LongWord;</code> | ||
+ | | LE32 Contains the uplink bit rate, in bits per second, as sent on the OUT pipe. | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''CDC headers''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PUSBCDCHeaders = ^TUSBCDCHeaders;</code> | ||
+ | |||
+ | <code>TUSBCDCHeaders = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>UnionDescriptor:PUSBCDCUnionDescriptor;</code> | ||
+ | | Union Functional Descriptor | ||
+ | |- | ||
+ | | <code>HeaderDescriptor:PUSBCDCHeaderDescriptor;</code> | ||
+ | | Header Functional Descriptor | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>CallManagementDescriptor:PUSBCDCCallManagementDescriptor;</code> | ||
+ | | Call Management Descriptor | ||
+ | |- | ||
+ | | <code>ACMDescriptor:PUSBCDCACMDescriptor;</code> | ||
+ | | Abstract Control Management Descriptor | ||
+ | |- | ||
+ | | <code>CountryDescriptor:PUSBCDCCountryDescriptor;</code> | ||
+ | | Country Selection Functional Descriptor | ||
+ | |- | ||
+ | | <code>NetworkTerminalDescriptor:PUSBCDCNetworkTerminalDescriptor;</code> | ||
+ | | Network Channel Terminal Functional Descriptor | ||
+ | |- | ||
+ | | <code>EthernetDescriptor:PUSBCDCEthernetDescriptor;</code> | ||
+ | | Ethernet Networking Functional Descriptor | ||
+ | |- | ||
+ | | <code>TCMDescriptor:PUSBCDCTCMDescriptor;</code> | ||
+ | | Telephone Control Model Functional Descriptor | ||
+ | |- | ||
+ | | <code>MDLMDescriptor:PUSBCDCMDLMDescriptor;</code> | ||
+ | | MDLM Functional Descriptor | ||
+ | |- | ||
+ | | <code>MDLMDetailDescriptor:PUSBCDCMDLMDetailDescriptor;</code> | ||
+ | | MDLM Detail Functional Descriptor | ||
+ | |- | ||
+ | | <code>OBEXDescriptor:PUSBCDCOBEXDescriptor;</code> | ||
+ | | OBEX Control Model Functional Descriptor | ||
+ | |- | ||
+ | | <code>NCMDescriptor:PUSBCDCNCMDescriptor;</code> | ||
+ | | NCM Control Model Functional Descriptor | ||
+ | |- | ||
+ | | <code>MBIMDescriptor:PUSBCDCMBIMDescriptor;</code> | ||
+ | | MBIM Control Model Functional Descriptor | ||
+ | |- | ||
+ | | <code>MBIMExtendedDescriptor:PUSBCDCMBIMExtendedDescriptor;</code> | ||
+ | | MBIM Extended Functional Descriptor | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
=== Public variables === | === Public variables === | ||
Line 393: | Line 997: | ||
---- | ---- | ||
− | |||
+ | '''CDC helper functions''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function USBCDCParseHeaders(Device:PUSBDevice; Headers:PUSBCDCHeaders; Data:Pointer; Size:LongWord):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Parse the extra data contained in a CDC interface and return pointers to the available headers</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Device | ||
+ | | The USB device the headers belong to | ||
+ | |- | ||
+ | ! Headers | ||
+ | | A pointer to the headers structure to be returned | ||
+ | |- | ||
+ | ! Data | ||
+ | | A pointer to the extra data from a CDC interface | ||
+ | |- | ||
+ | ! Size | ||
+ | | The size of the buffer pointed to by Data | ||
+ | |- | ||
+ | ! Return | ||
+ | | USB_STATUS_SUCCESS if completed or another error code on failure | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
Return to [[Unit_Reference|Unit Reference]] | Return to [[Unit_Reference|Unit Reference]] |
Latest revision as of 06:19, 9 September 2021
Return to Unit Reference
Contents
[hide]Description
Ultibo USB CDC Interface unit
The USB Communications Device Class (CDC) standard defines the protocol for communicating with a range of network adapters, modems and ISDN devices. This unit provides common definitions and structures used in conjunction with CDC devices.
Constants
USB_CDC_*_TYPE
USB_CDC_CALL_MGMT_CAP_*
USB_CDC_ACM_*
USB_CDC_*
USB_CDC_*_STOP_BITS
USB_CDC_*_PARITY
USB_CDC_ACM_CTRL_*
USB_CDC_PACKET_TYPE_*
USB_CDC_NOTIFY_*
USB_CDC_ACM_CTRL_*
Type definitions
CDC descriptor
CDC header descriptor
PUSBCDCHeaderDescriptor = ^TUSBCDCHeaderDescriptor;
TUSBCDCHeaderDescriptor = packed record
CDC call management descriptor
PUSBCDCCallManagementDescriptor = ^TUSBCDCCallManagementDescriptor;
TUSBCDCCallManagementDescriptor = packed record
CDC abstract control management descriptor
CDC union descriptor
CDC country descriptor
PUSBCDCCountryDescriptor = ^TUSBCDCCountryDescriptor;
TUSBCDCCountryDescriptor = packed record
CDC network terminal descriptor
PUSBCDCNetworkTerminalDescriptor = ^TUSBCDCNetworkTerminalDescriptor;
TUSBCDCNetworkTerminalDescriptor = packed record
CDC ethernet descriptor
PUSBCDCEthernetDescriptor = ^TUSBCDCEthernetDescriptor;
TUSBCDCEthernetDescriptor = packed record
CDC telephone control model descriptor
CDC MDLM descriptor
CDC MDLM detail descriptor
PUSBCDCMDLMDetailDescriptor = ^TUSBCDCMDLMDetailDescriptor;
TUSBCDCMDLMDetailDescriptor = packed record
CDC OBEX descriptor
CDC NCM descriptor
CDC MBIM descriptor
CDC MBIM extended descriptor
PUSBCDCMBIMExtendedDescriptor = ^TUSBCDCMBIMExtendedDescriptor;
TUSBCDCMBIMExtendedDescriptor = packed record
CDC line coding
CDC notification
CDC connection speed change
CDC headers
Public variables
None defined
Function declarations
CDC helper functions
function USBCDCParseHeaders(Device:PUSBDevice; Headers:PUSBCDCHeaders; Data:Pointer; Size:LongWord):LongWord;
Return to Unit Reference