📄 comctrl_ex.h
字号:
#define PC_DATA_BITS 0x00000020#define PC_XINPUT 0x00000100#define PC_XOUTPUT 0x00000200#define PC_ERROR 0x00000400#define PC_SKIPNULL 0x00000800#define PC_CTS 0x00001000#define PC_RTS 0x00002000#define PC_XON_CHAR 0x00010000#define PC_XOFF_CHAR 0x00020000#define PC_ERROR_CHAR 0x00040000#define PC_PEALT_CHAR 0x00080000#define PC_EVERYTHING 0xFFFFFFFF/*Port Configuration structure (used in COMCTRL_CONTROL_PORTCONFIG control)TODO(?): structure may be compacted (replace BOOLs by bitfields)*/typedef struct tagPORT_CONFIG{ UINT32 dwValidFileds; /* Combination of PortConfiguration bits*/ UINT32 dwDteSpeed; enum { PC_PARITY_NONE, PC_PARITY_ODD, PC_PARITY_EVEN, PC_PARITY_MARK, PC_PARITY_SPACE } eParity; /* Parity check*/ enum { PC_DATABITS_7, PC_DATABITS_8 } eDataBits; /* Data bits - only 7 and 8 are enabled*/ BOOL fXOutput; /* Xoff/Xon enabled for output*/ BOOL fXInput; /* Xoff/Xon enabled for input*/ BOOL fError; /* Replace chars with parity error by ErrorChar*/ BOOL fNull; /* Skip NULL characters*/ BOOL fCTS; /* Use CTS for Tx flow control*/ BOOL fRTS; /* Use RTS for Rx flow control*/ char cXonChar; char cXoffChar; char cErrorChar; char cPEAltChar;} PORT_CONFIG, *PPORT_CONFIG;/*Port Event Handler - used in Configure(COMCTRL_CONFIG_EVENT_HANDLER)*/typedef struct tagPORT_EVENT_HANDLER{ void (*pfnCallback) (PVOID pRef, UINT32 dwEventMask) __shimcall__; PVOID pRef;} PORT_EVENT_HANDLER, *PPORT_EVENT_HANDLER;/*Port Monitor Data - used in Monitor(COMCTRL_MONITOR_POUND_UD etc..)*/typedef struct tagPORT_MONITOR_DATA{ UINT32 dwSize; PVOID pBuf;} PORT_MONITOR_DATA, *PPORT_MONITOR_DATA;/********************************************************************//* Bitmaks definition*//********************************************************************/ /**//* Modem status bits*//**/ #define COMCTRL_STS_CTS_HOLD 0x00000001 /* Transmit is on CTS hold */#define COMCTRL_STS_DSR_HOLD 0x00000002 /* Transmit is on DSR hold */#define COMCTRL_STS_RLSD_HOLD 0x00000004 /* Transmit is on RLSD hold */#define COMCTRL_STS_XOFF_HOLD 0x00000008 /* Received handshake */#define COMCTRL_STS_XOFF_SENT 0x00000010 /* Issued handshake */#define COMCTRL_STS_EOF 0x00000020 /* EOF character found */#define COMCTRL_STS_TXIMMED 0x00000040 /* Immediate character being transmitted *//**//* Event bits*//**/#define COMCTRL_EVT_RXCHAR 0x00000001 /* Any Character received */#define COMCTRL_EVT_RXFLAG 0x00000002 /* Received certain character */#define COMCTRL_EVT_TXCHAR 0x00000004 /* Any character transmitted */#define COMCTRL_EVT_TXEMPTY 0x00000008 /* Transmit Queue Empty */#define COMCTRL_EVT_CTS 0x00000010 /* CTS changed state */#define COMCTRL_EVT_CTSS 0x00000020 /* CTS state */#define COMCTRL_EVT_DSR 0x00000040 /* DSR changed state */#define COMCTRL_EVT_DSRS 0x00000080 /* DSR state */#define COMCTRL_EVT_RLSD 0x00000100 /* RLSD changed state */#define COMCTRL_EVT_RLSDS 0x00000200 /* RLSD state */#define COMCTRL_EVT_BREAK 0x00000400 /* BREAK received */#define COMCTRL_EVT_ERR 0x00000800 /* Line status error occurred */#define COMCTRL_EVT_RING 0x00001000 /* Ring signal detected *//*#$YS$ */#define COMCTRL_EVT_RINGS 0x00002000 /* Ring signal detected *//*#define COMCTRL_EVT_PARITY_ERR 0x00002000 Parity Error occured *//*#define COMCTRL_EVT_RXOVRN 0x00004000 DTE Rx buffer overrun detected */#define COMCTRL_EVT_PARITY_ERR 0x00004000 /* Parity Error occured */#define COMCTRL_EVT_RXOVRN 0x00008000 /* DTE Rx buffer overrun detected */#define COMCTRL_EVT_EXT_PICKUP 0x00010000 /* 2nd phone offhook detection *//* Modem related */#define COMCTRL_MAX_PORT_NAME_LENGTH 256/* Direct API */__shimcall__ UINT32 ComCtrl_GetInterfaceVersion (void);__shimcall__ HANDLE ComCtrl_Create (void); __shimcall__ COM_STATUS ComCtrl_Destroy (HANDLE hInst);__shimcall__ COM_STATUS ComCtrl_Open (HANDLE hInst);__shimcall__ COM_STATUS ComCtrl_Close (HANDLE hInst);__shimcall__ COM_STATUS ComCtrl_Configure (HANDLE hInst, COMCTRL_CONFIG_CODE eCode, PVOID pConfig);__shimcall__ COM_STATUS ComCtrl_Monitor (HANDLE hInst, COMCTRL_MONITOR_CODE eCode, PVOID pMonitor);__shimcall__ COM_STATUS ComCtrl_Control (HANDLE hInst, COMCTRL_CONTROL_CODE eCode, PVOID pControl);__shimcall__ UINT32 ComCtrl_Read (HANDLE hInst, PVOID pBuf, UINT32 dwSize);__shimcall__ UINT32 ComCtrl_Write (HANDLE hInst, PVOID pBuf, UINT32 dwSize);/* Interface through function table */typedef struct I_COM_CTRL_TAG{ /************ Common Interface functions. ************/ UINT32 (*GetInterfaceVersion) (void); HANDLE (*Create) (void); COM_STATUS (*Destroy) (HANDLE hInst); COM_STATUS (*Open) (HANDLE hInst); COM_STATUS (*Close) (HANDLE hInst); COM_STATUS (*Configure) (HANDLE hInst, COMCTRL_CONFIG_CODE eCode, PVOID pConfig); COM_STATUS (*Monitor) (HANDLE hInst, COMCTRL_MONITOR_CODE eCode, PVOID pMonitor); COM_STATUS (*Control) (HANDLE hInst, COMCTRL_CONTROL_CODE eCode, PVOID pControl); /************ Specific Interface functions. ************/ UINT32 (*Read) (HANDLE hInst, PVOID pBuf, UINT32 dwSize); UINT32 (*Write) (HANDLE hInst, PVOID pBuf, UINT32 dwSize);} I_COM_CTRL_MGR_T, *PI_COM_CTRL_T;PVOID ComCtrlGetInterface(void);#ifdef USE_DIRECT_API #define COMCTRL_GetInterfaceVersion(pSys) ComCtrl_GetInterfaceVersion () #define COMCTRL_Create( pSys) ComCtrl_Create () #define COMCTRL_Destroy( pSys) ComCtrl_Destroy (pSys->hComCtrl) #define COMCTRL_Open( pSys) ComCtrl_Open (pSys->hComCtrl) #define COMCTRL_Close( pSys) ComCtrl_Close (pSys->hComCtrl) #define COMCTRL_Configure( pSys, eCode, pConfig) ComCtrl_Configure (pSys->hComCtrl, eCode, pConfig) #define COMCTRL_Monitor( pSys, eCode, pMonitor) ComCtrl_Monitor (pSys->hComCtrl, eCode, pMonitor) #define COMCTRL_Control( pSys, eCode, pControl) ComCtrl_Control (pSys->hComCtrl, eCode, pControl) #define COMCTRL_Read( pSys, pBuf, dwSize) ComCtrl_Read (pSys->hComCtrl, pBuf, dwSize) #define COMCTRL_Write( pSys, pBuf, dwSize) ComCtrl_Write (pSys->hComCtrl, pBuf, dwSize)#else #define COMCTRL_GetInterfaceVersion(pSys) pSys->pftComCtrl->GetInterfaceVersion () #define COMCTRL_Create( pSys) pSys->pftComCtrl->Create () #define COMCTRL_Destroy( pSys) pSys->pftComCtrl->Destroy (pSys->hComCtrl) #define COMCTRL_Open( pSys) pSys->pftComCtrl->Open (pSys->hComCtrl) #define COMCTRL_Close( pSys) pSys->pftComCtrl->Close (pSys->hComCtrl) #define COMCTRL_Configure( pSys, eCode, pConfig) pSys->pftComCtrl->Configure (pSys->hComCtrl, eCode, pConfig) #define COMCTRL_Monitor( pSys, eCode, pMonitor) pSys->pftComCtrl->Monitor (pSys->hComCtrl, eCode, pMonitor) #define COMCTRL_Control( pSys, eCode, pControl) pSys->pftComCtrl->Control (pSys->hComCtrl, eCode, pControl) #define COMCTRL_Read( pSys, pBuf, dwSize) pSys->pftComCtrl->Read (pSys->hComCtrl, pBuf, dwSize) #define COMCTRL_Write( pSys, pBuf, dwSize) pSys->pftComCtrl->Write (pSys->hComCtrl, pBuf, dwSize)#endif#endif /* #ifndef __MODEM_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -