tinyusb  0.4
Click here to lend your support to tinyusb donation and make a donation at pledgie.com
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
cdc.h File Reference
#include "common/common.h"

Go to the source code of this file.

Data Structures

struct  cdc_desc_func_header_t
 Header Functional Descriptor (Communication Interface) More...
 
struct  cdc_desc_func_union_t
 Union Functional Descriptor (Communication Interface) More...
 
struct  cdc_desc_func_country_selection_t
 Country Selection Functional Descriptor (Communication Interface) More...
 
struct  cdc_desc_func_call_management_t
 Call Management Functional Descriptor. More...
 
struct  cdc_acm_capability_t
 
struct  cdc_desc_func_abstract_control_management_t
 Abstract Control Management Functional Descriptor. More...
 
struct  cdc_desc_func_direct_line_management_t
 Direct Line Management Functional Descriptor. More...
 
struct  cdc_desc_func_telephone_ringer_t
 Telephone Ringer Functional Descriptor. More...
 
struct  cdc_desc_func_telephone_operational_modes_t
 Telephone Operational Modes Functional Descriptor. More...
 
struct  cdc_desc_func_telephone_call_state_reporting_capabilities_t
 Telephone Call and Line State Reporting Capabilities Descriptor. More...
 
struct  cdc_line_coding_t
 
struct  cdc_line_control_state_t
 

Macros

#define cdc_desc_func_union_n_t(no_slave)
 
#define cdc_desc_func_country_selection_n_t(no_country)
 

Enumerations

enum  cdc_pipeid_t { CDC_PIPE_NOTIFICATION, CDC_PIPE_DATA_IN, CDC_PIPE_DATA_OUT, CDC_PIPE_ERROR }
 CDC Pipe ID, used to indicate which pipe the API is addressing to (Notification, Out, In) More...
 
enum  cdc_comm_sublcass_type_t {
  CDC_COMM_SUBCLASS_DIRECT_LINE_CONTROL_MODEL = 0x01, CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL, CDC_COMM_SUBCLASS_TELEPHONE_CONTROL_MODEL, CDC_COMM_SUBCLASS_MULTICHANNEL_CONTROL_MODEL,
  CDC_COMM_SUBCLASS_CAPI_CONTROL_MODEL, CDC_COMM_SUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL, CDC_COMM_SUBCLASS_ATM_NETWORKING_CONTROL_MODEL, CDC_COMM_SUBCLASS_WIRELESS_HANDSET_CONTROL_MODEL,
  CDC_COMM_SUBCLASS_DEVICE_MANAGEMENT, CDC_COMM_SUBCLASS_MOBILE_DIRECT_LINE_MODEL, CDC_COMM_SUBCLASS_OBEX, CDC_COMM_SUBCLASS_ETHERNET_EMULATION_MODEL
}
 Communication Interface Subclass Codes. More...
 
enum  cdc_comm_protocol_type_t {
  CDC_COMM_PROTOCOL_ATCOMMAND = 0x01, CDC_COMM_PROTOCOL_ATCOMMAND_PCCA_101, CDC_COMM_PROTOCOL_ATCOMMAND_PCCA_101_AND_ANNEXO, CDC_COMM_PROTOCOL_ATCOMMAND_GSM_707,
  CDC_COMM_PROTOCOL_ATCOMMAND_3GPP_27007, CDC_COMM_PROTOCOL_ATCOMMAND_CDMA, CDC_COMM_PROTOCOL_ETHERNET_EMULATION_MODEL
}
 Communication Interface Protocol Codes. More...
 
enum  cdc_func_desc_type_t {
  CDC_FUNC_DESC_HEADER = 0x00, CDC_FUNC_DESC_CALL_MANAGEMENT = 0x01, CDC_FUNC_DESC_ABSTRACT_CONTROL_MANAGEMENT = 0x02, CDC_FUNC_DESC_DIRECT_LINE_MANAGEMENT = 0x03,
  CDC_FUNC_DESC_TELEPHONE_RINGER = 0x04, CDC_FUNC_DESC_TELEPHONE_CALL_AND_LINE_STATE_REPORTING_CAPACITY = 0x05, CDC_FUNC_DESC_UNION = 0x06, CDC_FUNC_DESC_COUNTRY_SELECTION = 0x07,
  CDC_FUNC_DESC_TELEPHONE_OPERATIONAL_MODES = 0x08, CDC_FUNC_DESC_USB_TERMINAL = 0x09, CDC_FUNC_DESC_NETWORK_CHANNEL_TERMINAL = 0x0A, CDC_FUNC_DESC_PROTOCOL_UNIT = 0x0B,
  CDC_FUNC_DESC_EXTENSION_UNIT = 0x0C, CDC_FUNC_DESC_MULTICHANEL_MANAGEMENT = 0x0D, CDC_FUNC_DESC_CAPI_CONTROL_MANAGEMENT = 0x0E, CDC_FUNC_DESC_ETHERNET_NETWORKING = 0x0F,
  CDC_FUNC_DESC_ATM_NETWORKING = 0x10, CDC_FUNC_DESC_WIRELESS_HANDSET_CONTROL_MODEL = 0x11, CDC_FUNC_DESC_MOBILE_DIRECT_LINE_MODEL = 0x12, CDC_FUNC_DESC_MOBILE_DIRECT_LINE_MODEL_DETAIL = 0x13,
  CDC_FUNC_DESC_DEVICE_MANAGEMENT_MODEL = 0x14, CDC_FUNC_DESC_OBEX = 0x15, CDC_FUNC_DESC_COMMAND_SET = 0x16, CDC_FUNC_DESC_COMMAND_SET_DETAIL = 0x17,
  CDC_FUNC_DESC_TELEPHONE_CONTROL_MODEL = 0x18, CDC_FUNC_DESC_OBEX_SERVICE_IDENTIFIER = 0x19
}
 Communication Interface SubType Descriptor. More...
 
enum  cdc_data_protocol_type_t {
  CDC_DATA_PROTOCOL_ISDN_BRI = 0x30, CDC_DATA_PROTOCOL_HDLC = 0x31, CDC_DATA_PROTOCOL_TRANSPARENT = 0x32, CDC_DATA_PROTOCOL_Q921_MANAGEMENT = 0x50,
  CDC_DATA_PROTOCOL_Q921_DATA_LINK = 0x51, CDC_DATA_PROTOCOL_Q921_TEI_MULTIPLEXOR = 0x52, CDC_DATA_PROTOCOL_V42BIS_DATA_COMPRESSION = 0x90, CDC_DATA_PROTOCOL_EURO_ISDN = 0x91,
  CDC_DATA_PROTOCOL_V24_RATE_ADAPTION_TO_ISDN = 0x92, CDC_DATA_PROTOCOL_CAPI_COMMAND = 0x93, CDC_DATA_PROTOCOL_HOST_BASED_DRIVER = 0xFD, CDC_DATA_PROTOCOL_IN_PROTOCOL_UNIT_FUNCTIONAL_DESCRIPTOR = 0xFE
}
 Data Interface Protocol Codes. More...
 
enum  cdc_management_request_t {
  CDC_REQUEST_SEND_ENCAPSULATED_COMMAND = 0x00, CDC_REQUEST_GET_ENCAPSULATED_RESPONSE = 0x01, CDC_REQUEST_SET_COMM_FEATURE = 0x02, CDC_REQUEST_GET_COMM_FEATURE = 0x03,
  CDC_REQUEST_CLEAR_COMM_FEATURE = 0x04, CDC_REQUEST_SET_AUX_LINE_STATE = 0x10, CDC_REQUEST_SET_HOOK_STATE = 0x11, CDC_REQUEST_PULSE_SETUP = 0x12,
  CDC_REQUEST_SEND_PULSE = 0x13, CDC_REQUEST_SET_PULSE_TIME = 0x14, CDC_REQUEST_RING_AUX_JACK = 0x15, CDC_REQUEST_SET_LINE_CODING = 0x20,
  CDC_REQUEST_GET_LINE_CODING = 0x21, CDC_REQUEST_SET_CONTROL_LINE_STATE = 0x22, CDC_REQUEST_SEND_BREAK = 0x23, CDC_REQUEST_SET_RINGER_PARMS = 0x30,
  CDC_REQUEST_GET_RINGER_PARMS = 0x31, CDC_REQUEST_SET_OPERATION_PARMS = 0x32, CDC_REQUEST_GET_OPERATION_PARMS = 0x33, CDC_REQUEST_SET_LINE_PARMS = 0x34,
  CDC_REQUEST_GET_LINE_PARMS = 0x35, CDC_REQUEST_DIAL_DIGITS = 0x36, CDC_REQUEST_SET_UNIT_PARAMETER = 0x37, CDC_REQUEST_GET_UNIT_PARAMETER = 0x38,
  CDC_REQUEST_CLEAR_UNIT_PARAMETER = 0x39, CDC_REQUEST_GET_PROFILE = 0x3A, CDC_REQUEST_SET_ETHERNET_MULTICAST_FILTERS = 0x40, CDC_REQUEST_SET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER = 0x41,
  CDC_REQUEST_GET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER = 0x42, CDC_REQUEST_SET_ETHERNET_PACKET_FILTER = 0x43, CDC_REQUEST_GET_ETHERNET_STATISTIC = 0x44, CDC_REQUEST_SET_ATM_DATA_FORMAT = 0x50,
  CDC_REQUEST_GET_ATM_DEVICE_STATISTICS = 0x51, CDC_REQUEST_SET_ATM_DEFAULT_VC = 0x52, CDC_REQUEST_GET_ATM_VC_STATISTICS = 0x53, CDC_REQUEST_MDLM_SEMANTIC_MODEL = 0x60
}
 Communication Interface Management Element Request Codes. More...
 
enum  cdc_notification_request_t {
  NETWORK_CONNECTION = 0x00, RESPONSE_AVAILABLE = 0x01, AUX_JACK_HOOK_STATE = 0x08, RING_DETECT = 0x09,
  SERIAL_STATE = 0x20, CALL_STATE_CHANGE = 0x28, LINE_STATE_CHANGE = 0x29, CONNECTION_SPEED_CHANGE = 0x2A,
  MDLM_SEMANTIC_MODEL_NOTIFICATION = 0x40
}
 Communication Interface Management Element Notification Codes. More...
 

Functions

 STATIC_ASSERT (sizeof(cdc_acm_capability_t)==1,"mostly problem with compiler")
 
static uint8_t cdc_functional_desc_typeof (uint8_t const *p_desc) ATTR_PURE ATTR_ALWAYS_INLINE
 
 STATIC_ASSERT (sizeof(cdc_line_coding_t)==7,"size is not correct")
 
 STATIC_ASSERT (sizeof(cdc_line_control_state_t)==2,"size is not correct")
 

Detailed Description

Author
hathach (tinyusb.org)

LICENSE

Software License Agreement (BSD License)

Copyright (c) 2013, hathach (tinyusb.org) All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This file is part of the tinyusb stack.

Definition in file cdc.h.