⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialhandler.h

📁 自编的串口通信程序
💻 H
字号:
// SerialCom.h: interface for the CSerialHandler 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

#include "GenComm.h"

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;

typedef struct
{
	UINT Baud; //115200
	UINT DataBits;//8bits
	UINT Parity;//No Parity
	UINT Respond_TimeOut;
	UINT StopBits;//1 stop bit
	UINT Port;
}SERIAL_PARAM;

class CSerialHandler : public CObject  
{
public:
	CSerialHandler(CWinThread * pThread);
	virtual ~CSerialHandler();
public:

	volatile BOOL m_bConnected; //连接标志 FALSE -- 串口关闭,TRUE -- 串口打开
	volatile HANDLE m_hCom;     // 串行口句柄

public:
	char     m_cPort[5];          //端口号
	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:
	//UINT CommProc(); //监视串口字符事件线程

	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 WriteComm(unsigned char *buf,DWORD dwLength);//发送串口数据
protected:
    CWinThread* m_pWatchThread;          // 监视串口的线程

public:	
	CWinThread* m_pParentThread;

	OVERLAPPED m_osRead, m_osWrite; // 用于重叠读/写
public:
	BOOL ReadComm(unsigned char * pBuf,UINT * PLen,UINT maxLen);
};

#endif // !defined(AFX_SERIALCOM_H__41E441F1_BB8F_43F9_9578_0193A41EA569__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -