📄 serialcom.h
字号:
// SerialCom.h: interface for the CSerialCom class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SERIALCOM_H__41E441F1_BB8F_43F9_9578_0193A41EA569__INCLUDED_)
#define AFX_SERIALCOM_H__41E441F1_BB8F_43F9_9578_0193A41EA569__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
const int CRC_CHECKSUM = 0;
const int BCC_CHECKSUM = 1;
const int LRC_CHECKSUM = 2;
const UINT MAXBLOCK = 2048;
const UINT XON = 0x11;
const UINT XOFF = 0x13;
const UINT INITTIMER = 1003;
const UINT BYTENUMBER = 256;
UINT CommProc(LPVOID pParam);
UINT ReadSerialThread(LPVOID pParam);
class CSerialCom : public CObject
{
public:
CSerialCom();
virtual ~CSerialCom();
public:
volatile BOOL m_bConnected; //连接标志 FALSE -- 串口关闭,TRUE -- 串口打开
volatile BOOL m_bSerialSelected;
volatile HANDLE m_hCom; // 串行口句柄
HTREEITEM hItemSerial;
public:
unsigned char RecvBuf[256];
unsigned char SendBuf[256];
unsigned char tmpRecvBuf[256];
public:
CString m_sPort; //端口号
UINT m_nBaud; //波特率
UINT m_nDataBits; //数据位
UINT m_nStopBits; //停止位
UINT m_nParity; //校验位
UINT m_nFlowCtrl; //流控制
UINT m_nRespond_TimeOut;
COMMTIMEOUTS ComTimeOuts; //超时结构
int m_nProtocol; //协议
public:
BOOL CalculateChecksum(unsigned char * pByte, int nNumberOfBytes,
unsigned short *pChecksum, int nChecksumMode /* = BCC_CHECKSUM */);
void CalculateBCC(unsigned char * pByte, int nNumberOfBytes, unsigned short *pChecksum);
void CalculateCRC(unsigned char *pByte, int nNumberOfBytes, unsigned short *pChecksum);
void CalculateLRC(unsigned char *pByte, int nNumberOfBytes, unsigned short *pChecksum);
BOOL ConfigConnection(HANDLE m_hCom); // 配置连接参数
BOOL OpenConnection(); // 打开参数
BOOL CloseConnection(); // 关闭连接
DWORD ReadComm(HANDLE m_hCom,unsigned char *buf,DWORD dwLength); //读串口数据
DWORD WriteComm(HANDLE m_hCom,unsigned char *buf,DWORD dwLength);//发送串口数据
protected:
CWinThread* m_pThread; // 监视串口的线程
CWinThread* m_pReadSerialThread;
public:
OVERLAPPED m_osRead, m_osWrite; // 用于重叠读/写
volatile HANDLE m_hPostMsgEvent; // 用于同步读线程的事件对象
volatile HANDLE m_hReadSerialEvent;// 用于通知读线程的事件对象
protected:
public:
};
#endif // !defined(AFX_SERIALCOM_H__41E441F1_BB8F_43F9_9578_0193A41EA569__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -