📄 framehandler.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 + -