📄 comm.h2
字号:
// From Win32 SDK's TTY Sample & TAPICOMM Sample
// Modify by FangHong, 1996-1997
#ifndef _COMM__H
#define _COMM__H
// ascii definitions
const BYTE ASCII_XON = 0x11;
const BYTE ASCII_XOFF = 0x13;
class CWnd;
class CCommInfo
{
public:
CCommInfo();
~CCommInfo();
public:
// for the Comm Device already opened, like TAPI
BOOL Create(CWnd* pNotifyWnd, DWORD dwCommBaseCommandID,
BYTE* pReadBuf, int nReadBufLen, HANDLE hCommFile);
// for manual opened Comm Device
BOOL Create(CWnd* pNotifyWnd, DWORD dwCommBaseCommandID,
BYTE* pReadBuf, int nReadBufLen, int nPort,
DWORD dwBaudRate, BYTE byteFlowCtrl, BYTE byteDataBits = 8,
BYTE byteStopBits = ONESTOPBIT, BYTE byteParity = NOPARITY, BOOL bRTS = FALSE);
BOOL CloseConnection(void);
BOOL OpenConnection(void);
void SuspendReadThread(void);
void ResumeReadThread(void);
void CloseReadThread(void);
void CloseWriteThread(void);
BOOL WriteCommBlock(LPCTSTR lpByte, DWORD dwBytesToWrite);
static DWORD ReadThreadProc(LPVOID lpvParam);
static DWORD WriteThreadProc(LPVOID lpvParam);
protected:
BOOL SetupReadEvent(LPOVERLAPPED lpOverlappedRead,
LPDWORD lpnNumberOfBytesRead);
BOOL HandleReadEvent(LPOVERLAPPED lpOverlappedRead,
LPDWORD lpnNumberOfBytesRead);
BOOL HandleReadData(DWORD dwSizeofBuffer);
BOOL HandleCommEvent(LPOVERLAPPED lpOverlappedCommEvent,
LPDWORD lpfdwEvtMask, BOOL bRetrieveEvent);
BOOL SetupWaitCommEvent(LPOVERLAPPED lpOverlappedCommEvent,
LPDWORD lpfdwEvtMask);
BOOL HandleWriteData(LPOVERLAPPED lpOverlappedWrite,
LPCSTR lpszStringToWrite, DWORD dwNumberOfBytesToWrite);
BOOL PostCommError(void);
public:
enum
{
ID_COMM_READ,
ID_COMM_ERROR,
ID_COMM_EVENT_NUMBER
};
enum
{
PWM_COMMWRITE = WM_USER + 1,
};
BOOL m_bConnected;
BOOL m_bRTS; // special for connection with DIANTAI?
BYTE m_nPort;
BYTE m_byteFlowCtrl;
BYTE m_byteParity;
BYTE m_byteStopBits;
BYTE m_byteDataBits;
DWORD m_dwBaudRate;
HANDLE m_hReadThread;
DWORD m_dwReadThreadID;
HANDLE m_hWriteThread;
DWORD m_dwWriteThreadID;
HANDLE m_hCommFile;
HANDLE m_hCloseEvent;
CWnd* m_pNotifyWnd;
DWORD m_dwCommBaseCommandID;
BYTE* m_pReadBuf;
int m_nReadBufLen;
static CString m_strCommNameFmt;
};
#endif // _COMM__H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -