VSF Documented
Data Structures | Macros | Typedefs | Functions | Variables
vsf_usbd_CDCACM.h File Reference
#include "component/usb/vsf_usb_cfg.h"
#include "component/usb/common/class/CDC/vsf_usb_CDCACM.h"
#include "./vsf_usbd_CDCACM_desc.h"
#include "utilities/ooc_class.h"

Go to the source code of this file.

Data Structures

class  vk_usbd_cdcacm_t
 
struct  vk_usbd_cdcacm_cfg_t
 

Macros

#define USB_CDC_ACM_PARAM(__INT_IN_EP, __BULK_IN_EP, __BULK_OUT_EP, __STREAM_RX, __STREAM_TX, ...)
 
#define USB_CDC_ACM_PARITY_NONE   0
 
#define USB_CDC_ACM_PARITY_ODD   1
 
#define USB_CDC_ACM_PARITY_EVEN   2
 
#define USB_CDC_ACM_STOPBIT_1   0
 
#define USB_CDC_ACM_STOPBIT_1P5   1
 
#define USB_CDC_ACM_STOPBIT_2   2
 
#define USB_CDC_ACM_LINECODE(__BAUDRATE, __BITLEN, __PARITY, __STOP)
 
#define USB_CDC_ACM_LINECODE_115200_8N1    USB_CDC_ACM_LINECODE(115200, 8, USB_CDC_ACM_PARITY_NONE, USB_CDC_ACM_STOPBIT_1)
 
#define USB_CDC_ACM_IFS_NUM   USB_CDC_IFS_NUM
 
#define USB_CDC_ACM_IFS_CONTROL(__CDC_ACM_PARAM)    USB_IFS(&vk_usbd_cdcacm_control, &__CDC_ACM_PARAM)
 
#define USB_CDC_ACM_IFS_DATA(__CDC_ACM_PARAM)    USB_IFS(&vk_usbd_cdcacm_data, &__CDC_ACM_PARAM)
 
#define __usbd_cdc_acm_desc_iad(__name, __ifs_start, __i_func, __int_in_ep, __bulk_in_ep, __bulk_out_ep, __bulk_ep_size, __int_ep_interval)
 
#define __usbd_cdc_acm_func(__name, __func_id, __str_func, __i_func, __ifs_start, __int_in_ep, __bulk_in_ep, __bulk_out_ep, __bulk_ep_size, __int_ep_interval, __stream_rx, __stream_tx, ...)
 
#define __usbd_cdc_acm_ifs(__name, __func_id)
 
#define usbd_cdc_acm_desc_iad(__name, __func_id)
 
#define usbd_cdc_acm_func(__name, __func_id, __str_func, __i_func, __ifs_start, __int_in_ep, __bulk_in_ep, __bulk_out_ep, __bulk_ep_size, __int_ep_interval, __stream_rx, __stream_tx, ...)
 
#define usbd_cdc_acm_ifs(__name, __func_id)    __usbd_cdc_acm_ifs(__name, __func_id)
 

Typedefs

typedef struct vk_usbd_cdcacm_cfg_t vk_usbd_cdcacm_cfg_t
 

Functions

vsf_err_t vk_usbd_cdcacm_init (vk_usbd_cdcacm_t *obj, const vk_usbd_cdcacm_cfg_t *cfg)
 

Variables

const vk_usbd_class_op_t vk_usbd_cdcacm_control
 
const vk_usbd_class_op_t vk_usbd_cdcacm_data
 

Macro Definition Documentation

◆ USB_CDC_ACM_PARAM

#define USB_CDC_ACM_PARAM (   __INT_IN_EP,
  __BULK_IN_EP,
  __BULK_OUT_EP,
  __STREAM_RX,
  __STREAM_TX,
  ... 
)
Value:
.ep = { \
.notify = (__INT_IN_EP), \
.out = (__BULK_OUT_EP), \
.in = (__BULK_IN_EP), \
}, \
.line_coding = __VA_ARGS__, \
.stream.tx.stream = (vsf_stream_t *)(__STREAM_TX), \
.stream.rx.stream = (vsf_stream_t *)(__STREAM_RX),
Definition vsf_simple_stream.h:254

◆ USB_CDC_ACM_PARITY_NONE

#define USB_CDC_ACM_PARITY_NONE   0

◆ USB_CDC_ACM_PARITY_ODD

#define USB_CDC_ACM_PARITY_ODD   1

◆ USB_CDC_ACM_PARITY_EVEN

#define USB_CDC_ACM_PARITY_EVEN   2

◆ USB_CDC_ACM_STOPBIT_1

#define USB_CDC_ACM_STOPBIT_1   0

◆ USB_CDC_ACM_STOPBIT_1P5

#define USB_CDC_ACM_STOPBIT_1P5   1

◆ USB_CDC_ACM_STOPBIT_2

#define USB_CDC_ACM_STOPBIT_2   2

◆ USB_CDC_ACM_LINECODE

#define USB_CDC_ACM_LINECODE (   __BAUDRATE,
  __BITLEN,
  __PARITY,
  __STOP 
)
Value:
{ \
.bitrate = (__BAUDRATE), \
.stop = (__STOP), \
.parity = (__PARITY), \
.datalen = (__BITLEN), \
}

◆ USB_CDC_ACM_LINECODE_115200_8N1

#define USB_CDC_ACM_LINECODE_115200_8N1    USB_CDC_ACM_LINECODE(115200, 8, USB_CDC_ACM_PARITY_NONE, USB_CDC_ACM_STOPBIT_1)

◆ USB_CDC_ACM_IFS_NUM

#define USB_CDC_ACM_IFS_NUM   USB_CDC_IFS_NUM

◆ USB_CDC_ACM_IFS_CONTROL

#define USB_CDC_ACM_IFS_CONTROL (   __CDC_ACM_PARAM)     USB_IFS(&vk_usbd_cdcacm_control, &__CDC_ACM_PARAM)

◆ USB_CDC_ACM_IFS_DATA

#define USB_CDC_ACM_IFS_DATA (   __CDC_ACM_PARAM)     USB_IFS(&vk_usbd_cdcacm_data, &__CDC_ACM_PARAM)

◆ __usbd_cdc_acm_desc_iad

#define __usbd_cdc_acm_desc_iad (   __name,
  __ifs_start,
  __i_func,
  __int_in_ep,
  __bulk_in_ep,
  __bulk_out_ep,
  __bulk_ep_size,
  __int_ep_interval 
)
Value:
USB_DESC_CDC_ACM_IAD((__ifs_start), (__i_func), \
(__int_in_ep), (__bulk_in_ep), (__bulk_out_ep), \
(__bulk_ep_size), (__int_ep_interval))
#define USB_DESC_CDC_ACM_IAD(__IFS_START, __I_FUNC, __INT_IN_EP, __BULK_IN_EP, __BULK_OUT_EP, __BULK_EP_SIZE, __INT_EP_INTERVAL)
Definition vsf_usbd_CDCACM_desc.h:64

◆ __usbd_cdc_acm_func

#define __usbd_cdc_acm_func (   __name,
  __func_id,
  __str_func,
  __i_func,
  __ifs_start,
  __int_in_ep,
  __bulk_in_ep,
  __bulk_out_ep,
  __bulk_ep_size,
  __int_ep_interval,
  __stream_rx,
  __stream_tx,
  ... 
)
Value:
enum { \
__##__name##_CDCACM##__func_id##_IFS_START = (__ifs_start), \
__##__name##_CDCACM##__func_id##_I_FUNC = (__i_func), \
__##__name##_CDCACM##__func_id##_INTIN_EP = (__int_in_ep), \
__##__name##_CDCACM##__func_id##_BULKIN_EP = (__bulk_in_ep), \
__##__name##_CDCACM##__func_id##_BULKOUT_EP = (__bulk_out_ep), \
__##__name##_CDCACM##__func_id##_BULK_EP_SIZE = (__bulk_ep_size),\
__##__name##_CDCACM##__func_id##_BULK_EP_INTERVAL = (__int_ep_interval),\
}; \
usbd_func_str_desc(__name, __func_id, __str_func) \
vk_usbd_cdcacm_t __##__name##_CDCACM##__func_id = { \
USB_CDC_ACM_PARAM((__int_in_ep), (__bulk_in_ep), (__bulk_out_ep),\
(__stream_rx), (__stream_tx), __VA_ARGS__) \
};
Definition vsf_usbd_CDCACM.h:129
#define __name
Definition hci_transport_aic8800.c:552

◆ __usbd_cdc_acm_ifs

#define __usbd_cdc_acm_ifs (   __name,
  __func_id 
)
Value:
USB_CDC_ACM_IFS_CONTROL(__##__name##_CDCACM##__func_id) \
USB_CDC_ACM_IFS_DATA(__##__name##_CDCACM##__func_id)
#define USB_CDC_ACM_IFS_CONTROL(__CDC_ACM_PARAM)
Definition vsf_usbd_CDCACM.h:72

◆ usbd_cdc_acm_desc_iad

#define usbd_cdc_acm_desc_iad (   __name,
  __func_id 
)
Value:
__##__name##_CDCACM##__func_id##_IFS_START, \
4 + __##__name##_CDCACM##__func_id##_I_FUNC, \
__##__name##_CDCACM##__func_id##_INTIN_EP, \
__##__name##_CDCACM##__func_id##_BULKIN_EP, \
__##__name##_CDCACM##__func_id##_BULKOUT_EP, \
__##__name##_CDCACM##__func_id##_BULK_EP_SIZE, \
__##__name##_CDCACM##__func_id##_BULK_EP_INTERVAL)
#define __usbd_cdc_acm_desc_iad(__name, __ifs_start, __i_func, __int_in_ep, __bulk_in_ep, __bulk_out_ep, __bulk_ep_size, __int_ep_interval)
Definition vsf_usbd_CDCACM.h:79

◆ usbd_cdc_acm_func

#define usbd_cdc_acm_func (   __name,
  __func_id,
  __str_func,
  __i_func,
  __ifs_start,
  __int_in_ep,
  __bulk_in_ep,
  __bulk_out_ep,
  __bulk_ep_size,
  __int_ep_interval,
  __stream_rx,
  __stream_tx,
  ... 
)
Value:
__usbd_cdc_acm_func(__name, __func_id, (__str_func), (__i_func), (__ifs_start),\
(__int_in_ep), (__bulk_in_ep), (__bulk_out_ep), (__bulk_ep_size), (__int_ep_interval),\
(__stream_rx), (__stream_tx), __VA_ARGS__)
#define __usbd_cdc_acm_func(__name, __func_id, __str_func, __i_func, __ifs_start, __int_in_ep, __bulk_in_ep, __bulk_out_ep, __bulk_ep_size, __int_ep_interval, __stream_rx, __stream_tx,...)
Definition vsf_usbd_CDCACM.h:86

◆ usbd_cdc_acm_ifs

#define usbd_cdc_acm_ifs (   __name,
  __func_id 
)     __usbd_cdc_acm_ifs(__name, __func_id)

Typedef Documentation

◆ vk_usbd_cdcacm_cfg_t

Function Documentation

◆ vk_usbd_cdcacm_init()

vsf_err_t vk_usbd_cdcacm_init ( vk_usbd_cdcacm_t obj,
const vk_usbd_cdcacm_cfg_t cfg 
)
extern

Variable Documentation

◆ vk_usbd_cdcacm_control

const vk_usbd_class_op_t vk_usbd_cdcacm_control
extern

◆ vk_usbd_cdcacm_data

const vk_usbd_class_op_t vk_usbd_cdcacm_data
extern