1:
10:
11:
15:
#ifndef __USB_CDC_COMMIF_API_H__
16:
#define __USB_CDC_COMMIF_API_H__
17:
18:
19:
#include "usb_cdc_type.h"
20:
#include "usb_cdc_log.h"
21:
22:
23:
#define CDC_MAJOR_VERSION (0x01)
24:
25:
26:
#define CDC_MINOR_VERSION (0x00)
27:
28:
29:
30:
typedef enum {
31: COMM_FEATURE_SELECTOR_ABSTRACT_STATE = 1,
32: COMM_FEATURE_SELECTOR_COUNTRY_SETTING
33: }
COMM_FEATURE_SELECTOR;
34:
35:
36:
typedef enum {
37: LINE_CODING_STOPBIT_1,
38: LINE_CODING_STOPBIT_15,
39: LINE_CODING_STOPBIT_2
40: }
LINE_CODING_STOPBIT;
41:
42:
43:
typedef enum {
44: LINE_CODING_PARITY_NONE,
45: LINE_CODING_PARITY_ODD,
46: LINE_CODING_PARITY_EVEN,
47: LINE_CODING_PARITY_MARK,
48: LINE_CODING_PARITY_SPACE
49: }
LINE_CODING_PARITY;
50:
51:
52:
typedef enum {
53: LINE_CODING_DATABIT_5 = 5,
54: LINE_CODING_DATABIT_6,
55: LINE_CODING_DATABIT_7,
56: LINE_CODING_DATABIT_8,
57: LINE_CODING_DATABIT_16 = 16
58: }
LINE_CODING_DATABIT;
59:
60:
61:
typedef struct CdcCommFeature*
PCDC_COMM_FEATURE;
62:
typedef struct CdcLineCoding*
PCDC_LINE_CODING;
63:
typedef struct CdcControlLineState*
PCDC_CONTROL_LINE_STATE;
64:
typedef struct CdcSendBreak*
PCDC_SEND_BREAK;
65:
66:
71:
typedef struct CdcCommFeature {
72:
COMM_FEATURE_SELECTOR FeatureSelector;
73: uhs_ubit16_t u16Data;
74: }
CDC_COMM_FEATURE;
75:
76:
79:
typedef struct CdcLineCoding {
80: uhs_ubit32_t u32BaudRate;
81:
LINE_CODING_STOPBIT StopBit;
82:
LINE_CODING_PARITY Parity;
83:
LINE_CODING_DATABIT DataBit;
84: }
CDC_LINE_CODING;
85:
86:
91:
typedef struct CdcControlLineState {
92: uhs_ubit16_t u16Data;
93: }
CDC_CONTROL_LINE_STATE;
94:
95:
100:
typedef struct CdcSendBreak {
101: uhs_ubit16_t u16Data;
102: }
CDC_SEND_BREAK;
103:
104:
105:
extern uhs_status_t
Usbh_Cdc_GetVersion(uhs_ubit8_t* pu8MajorVersion, uhs_ubit8_t* pu8MinorVersion);
106:
extern uhs_status_t
Usbh_Cdc_RegistCallBack(
void* pContext,
cdc_callback_t pUserNotifyCallback, uhs_ubit8_t u8TotalBuffSize);
107:
extern uhs_status_t
Usbh_Cdc_SendEncapsulatedCommand(
void* pContext,
PCDC_BUFF_INFO pstData);
108:
extern uhs_status_t
Usbh_Cdc_GetEncapsulatedResponse(
void* pContext,
PCDC_BUFF_INFO pstData);
109:
extern uhs_status_t
Usbh_Cdc_SetCommFeature(
void* pContext,
PCDC_COMM_FEATURE pstData);
110:
extern uhs_status_t
Usbh_Cdc_GetCommFeature(
void* pContext,
PCDC_COMM_FEATURE pstData);
111:
extern uhs_status_t
Usbh_Cdc_ClearCommFeature(
void* pContext,
PCDC_COMM_FEATURE pstData);
112:
extern uhs_status_t
Usbh_Cdc_SetLineCoding(
void* pContext,
PCDC_LINE_CODING pstData);
113:
extern uhs_status_t
Usbh_Cdc_GetLineCoding(
void* pContext,
PCDC_LINE_CODING pstData);
114:
extern uhs_status_t
Usbh_Cdc_SetControlLineState(
void* pContext,
PCDC_CONTROL_LINE_STATE pstData);
115:
extern uhs_status_t
Usbh_Cdc_SendBreak(
void* pContext,
PCDC_SEND_BREAK pstData);
116:
117:
118:
119:
120:
121:
122:
123:
124:
#ifdef USBH_STACK_DEBUG_BUILD
125:
#define CIAPI_CDC_REPORT_SUMMARY(err) Usbh_Cdc_Log_ReportError( g_filename, __LINE__, (err), (uhs_ubit8_t*)"1", 0 )
126:
#define CIAPI_CDC_REPORT_DETAIL(err, mesg, len) Usbh_Cdc_Log_ReportError( g_filename, __LINE__, (err), (mesg), (len) )
127:
#define CIAPI_CDC_REPORT_MILESTONE(num) Usbh_Cdc_Log_ReportMilestone((num))
128:
#else
129:
#define CIAPI_CDC_REPORT_SUMMARY(err) Usbh_Cdc_Log_ReportDummy(err)
130:
#define CIAPI_CDC_REPORT_DETAIL(err, mesg, len) Usbh_Cdc_Log_ReportDummy(err)
131:
#define CIAPI_CDC_REPORT_MILESTONE(num) Usbh_Cdc_Log_ReportMilestone((num))
132:
#endif
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
#endif