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

📄 framehandler.h

📁 自编的串口通信程序
💻 H
字号:
#if !defined(AFX_FRAMEHANDLER_H__3869FA48_8BF6_4E4A_85F9_702CCFF3C73A__INCLUDED_)
#define AFX_FRAMEHANDLER_H__3869FA48_8BF6_4E4A_85F9_702CCFF3C73A__INCLUDED_

#include "SerialHandler.h"	// Added by ClassView
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// FrameHandler.h : header file
//

#define FRAME_BEGIN 0X7e
#define FRAME_END   0X7e

#define MAX_RS232_RX_BUF  512

#define HDLC_INITFCS16 0xffff /* Initial FCS value */
#define HDLC_GOODFCS16 0xf0b8 /* Good final FCS value */
#define HDLC_FCS(fcs,cp) (((fcs)>>8)^fcstab[((fcs)^(cp))&0xff]);

#define FCS_BITS   2
#define FRAME_DATA_LEN  2
#define FRAME_MARK 2

#define MIN_FRAME_LEN \
		FCS_BITS+FRAME_DATA_LEN+FRAME_MARK
#define PADDING_LEN(a) MAKEWORD(a[1],a[2])

typedef struct
{
	char *pBuf ;
	FRAME_BUF_LIST * nextBuf;
}FRAME_BUF_LIST;
/////////////////////////////////////////////////////////////////////////////
// CFrameHandler thread

class CFrameHandler : public CWinThread
{
	DECLARE_DYNCREATE(CFrameHandler)
protected:
	CFrameHandler();           // protected constructor used by dynamic creation

// Attributes
public:


	FRAME_BUF_LIST * m_pFrameBufList;
	UINT m_nFrameBufPos;
	char m_cFrameBuf[MAX_RS232_RX_BUF];
	CSerialHandler * m_pSerialHandler;
	CWinApp * m_pParentApp;
// Operations
public:
	BOOL FreeFrameMem(char **buf);

	char * AllocFrameMem(char ** buf,UINT len);
	WORD HdlcFcs16(WORD fcs,unsigned char * pc,int len);
	UINT CheckFrame();
	void ConfigSerial(SERIAL_PARAM * pSerialParam);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CFrameHandler)
	public:
	virtual BOOL InitInstance();
	virtual int ExitInstance();
	//}}AFX_VIRTUAL

// Implementation
protected:
	virtual ~CFrameHandler();

	// Generated message map functions
	//{{AFX_MSG(CFrameHandler)
	afx_msg LRESULT OnSerialCmd(WPARAM wPARAM, LPARAM lPARAM);
	afx_msg LRESULT OnSerialRxRead(WPARAM wPARAM, LPARAM lPARAM);
	
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_FRAMEHANDLER_H__3869FA48_8BF6_4E4A_85F9_702CCFF3C73A__INCLUDED_)

⌨️ 快捷键说明

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