📄 serialport.h
字号:
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// 定义一个串口类用于串口操作
#define SERIALBUF 6000
class AFX_EXT_CLASS CSerialPort
{
public:
CString m_strPortName;
HANDLE m_hPort;
DWORD m_BaudRate;
BYTE m_StopBits;
BYTE m_ByteSize;
BYTE m_Parity; // 0-4,no,odd,even,mark,space
DWORD m_dwBufferSize;
OVERLAPPED m_ovWait;
OVERLAPPED m_ovRead;
OVERLAPPED m_ovWrite;
public:
CSerialPort();
~CSerialPort();
BOOL PortSetup(int PortID,DWORD dwBaud,DWORD dwBuffer=SERIALBUF);
void ClosePort();
BOOL Initialize();
int ReadComm(char *pbuf,DWORD dwLen);
BOOL WriteComm(const char *pbuf,DWORD dwLen);
void ProcessErrorMessage(char *pszErrorText);
};
//////////////////////////////////////////////////////////////////////////////
class AFX_EXT_CLASS CSerialCtrl
{
public:
CSerialPort m_Port;
DWORD m_dwRecvThdID;
HANDLE m_hRecvThd;
char m_szRecvBuffer[SERIALBUF];
HANDLE m_hSend;
BOOL m_bRecvRun;
public:
CSerialCtrl();
~CSerialCtrl();
BOOL Start(int PortID,DWORD dwBaud,DWORD dwBuffer=SERIALBUF,int nPriority=0);
void End();
virtual void OnRecvData(char *pBuffer,int nLen);
virtual void OnEvCTS(DWORD dwStatus);
virtual void OnEvDSR(DWORD dwStatus);
virtual void OnEvRLSD(DWORD dwStatus);
//
BOOL SendData(char *pBuffer,int nLen);
void SetRTS();
void ClearRTS();
void SetDTR();
void ClearDTR();
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -