📄 datacomm.h
字号:
// DataComm.h: interface for the CDataComm class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DATACOMM_H__2D1CCAE6_61A2_11D3_8ADD_000080014FC8__INCLUDED_)
#define AFX_DATACOMM_H__2D1CCAE6_61A2_11D3_8ADD_000080014FC8__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define USECOMM // yes, we need the COMM API
#define MAXBLOCK 256
#define READ_BUFFER_SIZE 1024
#define ASCII_XON 0x11
#define ASCII_XOFF 0x13
class CDataComm;
DWORD FAR PASCAL DataCommWatchProc(CDataComm* pCommObject);
typedef int (DataServiceCallBackFunc)(BYTE* pbyContent,int nLength,DWORD dwUserData);
typedef DataServiceCallBackFunc * pDataServiceCallBackFunc;
class CDataComm
{
friend DWORD FAR PASCAL DataCommWatchProc(CDataComm* pCommObject);
//friend DWORD FAR PASCAL DataWriteThreadProc(CDataComm* pCommObject);
//friend DWORD FAR PASCAL DataReadThreadProc(CDataComm* pCommObject);
protected:
HANDLE m_hComm;
OVERLAPPED m_WriteOS;
OVERLAPPED m_ReadOS;
int m_nPort;
BOOL m_bConnected;
BOOL m_bDisplayError;
int m_nBaudRate;
int m_nInputBufferSize;
int m_nOutputBufferSize;
DWORD m_dwThreadID;
HANDLE m_hThread;
pDataServiceCallBackFunc m_pCallBackFunc;
LPVOID m_lpUserInstance;
HANDLE m_hWriteThread;
DWORD m_dwWriteThreadID;
HANDLE m_hReadThread;
DWORD m_dwReadThreadID;
HANDLE m_hQuitEvent;
HANDLE m_hWriteEvent;
HANDLE m_hCTSEvent;
HANDLE m_hReadEvent;
UINT m_uMiniBlockSize;
UINT m_uBlockSize;
//CMultiplex * m_pMultiplex;
//CDemultiplex * m_pDemultiplex;
DWORD m_dwUserData;
CByteBuffer m_InputBuffer;
public:
void WriteToSerial(BYTE* pbyTransferBlock,UINT nStreamLength);
CDataComm(DWORD dwUserData,
pDataServiceCallBackFunc pCallBackFunc=NULL,
int nBaudRate=2400,
int nInputBufferSize=4096,
int nOutputBufferSize=4096,
BOOL bDisplayError=FALSE);
virtual ~CDataComm(){CloseConnection();}
BOOL WriteCommBlock(BYTE* lpByte , DWORD dwBytesToWrite);
BOOL OpenComm(int nPortNumber=2,LPVOID lpUserInstance=NULL);
BOOL SetRate(int nBaudRate);
BOOL CloseConnection();
private:
BOOL CreateTTYInfo();
int ReadCommBlock(BYTE* lpszBlock, int nMaxLength );
BOOL OpenConnection();
BOOL SetupConnection();
};
#endif // !defined(AFX_DATACOMM_H__2D1CCAE6_61A2_11D3_8ADD_000080014FC8__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -