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

📄 testlfpprotocolview.h

📁 一个很好的LFP规约调试器
💻 H
字号:
// TestLFPProtocolView.h : interface of the CTestLFPProtocolView class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_TESTLFPPROTOCOLVIEW_H__CA9554F0_3CD6_4143_A70C_24879EC05400__INCLUDED_)
#define AFX_TESTLFPPROTOCOLVIEW_H__CA9554F0_3CD6_4143_A70C_24879EC05400__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "TestLFPProtocolDoc.h"
#define PROTOCOL_RUN		0
#define PROTOCOL_POLL		1
#define WAIT_TIME			2

UINT masterlfpproto( LPVOID pParam );
class CTestLFPProtocolView : public CFormView
{
protected: // create from serialization only
	CTestLFPProtocolView();
	DECLARE_DYNCREATE(CTestLFPProtocolView)

public:
	//{{AFX_DATA(CTestLFPProtocolView)
	enum { IDD = IDD_TESTLFPPROTOCOL_FORM };
	CRichEditCtrl	m_MSG;
	//}}AFX_DATA

// Attributes
public:
	CTestLFPProtocolDoc* GetDocument();

// Operations
public:
public:
	CWinThread*		m_pThread; // 代表辅助线程
	volatile BOOL	m_bConnected;//表示连接否,用来标识菜单串口连接和断开连接是否可用
	volatile HANDLE	m_hPostMsgEvent; // 用于WM_COMMNOTIFY消息的事件对象
	OVERLAPPED		m_osRead;
	OVERLAPPED		m_osWrite; // 用于重叠读/写
	volatile HANDLE m_hCom; // 串行口句柄
	BOOL			m_bInit;
	
public:		//串口读写
	DWORD	WriteCommData( BYTE* buffer, DWORD dwLength );
	DWORD	ReadCommData( BYTE* buffer, DWORD dwLength );
	BOOL	InitComm();
	void	CloseComm();

private:
	BOOL m_bshowmsg;
	BOOL m_bEnable;
	void MainInit( void );
	void ReadConfig( void );
	void MainSend( void );
	void MainRun( void );
	void MainSystemWait( void );

	void ShowMSG( BYTE* buffer, int len, BOOL bIsSend = FALSE );

public:
	BOOL m_bPoll;
	BYTE dev_addr;
	BYTE nYkState;

	struDevCtrl	dev_ctrl;

	char filepath[MAX_PATH];
	BYTE dev_settingvalue_type[256];
	void MSGShow( BOOL bshow );

private:	//串口配置信息
	char	strComNo[8];
	DWORD	dwBaudRate;
	BYTE	DataSize;
	BYTE	Parity;
	BYTE	StopBit;

	BYTE	startaddr;
	BYTE	endaddr;

	int		dev_num;
	BOOL	m_bYkValue;
	BYTE	m_bYkNum;
	BYTE	aivalue_num;
	BYTE	divalue_num;

	CHARFORMAT		RichEditFormat;
	struRecBuf		m_recebuffer;
	struDevType		m_devtype[MAX_DEV_NUM];
private:
	BOOL m_bPolling;
	BOOL m_bIsC35Frame;
	BOOL GetACKFrame( BYTE* buffer, int& count );
	BOOL GetNAKFrame( BYTE* buffer, int& count );
	BOOL GetC1Frame( BYTE* buffer, int& count );
	BOOL GetC4Frame( BYTE* buffer, int& count );
	BOOL GetC15Frame( BYTE* buffer, int& count );
	BOOL GetC16Frame( BYTE* buffer, int& count );
	BOOL GetC19Frame( BYTE* buffer, int& count );
	BOOL GetC20Frame( BYTE* buffer, int& count );
	BOOL GetC2Frame( BYTE* buffer, int& count, DWORD& frame );
	BOOL GetC7Frame( BYTE* buffer, int& count, DWORD& frame );
	BOOL GetC8Frame( BYTE* buffer, int& count, DWORD& frame );
	BOOL GetC9Frame( BYTE* buffer, int& count, DWORD& frame );
	BOOL GetC10Frame( BYTE* buffer, int& count, DWORD& frame );
	BOOL GetC11Frame( BYTE* buffer, int& count, DWORD& frame );
	BOOL GetC12Frame( BYTE* buffer, int& count, DWORD& frame );
	BOOL GetC13Frame( BYTE* buffer, int& count, DWORD& frame );
	BOOL GetYKFrame( BYTE* buffer, int& count, DWORD& frame );

	BOOL GetC35Frame( BYTE* buffer, int& count );
private:
	int	 m_BufferSize;
	BOOL m_bSYN;
	BOOL IsSYN( BYTE* buffer );
	BOOL MainProc( BYTE* buffer, int count );
	BOOL OnReceiveACK( int addr );
	BOOL OnReceiveNACK( int addr );
	BOOL OnReceiveR1Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR2Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR4Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR7Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR8Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR9Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR10Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR15Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR16Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR17Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR18Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR19Frame( int addr, BYTE* buffer, int len );
	BOOL OnReceiveR20Frame( int addr, BYTE* buffer, int len );

	BOOL OnReceiveR32Frame( int addr, BYTE* buffer, int len );

	WORD GetCheckSum16( BYTE* pData, int count );
private:
	int			m_nState;
	BYTE		m_nFrameType;
	DWORD		m_nCount;		//loops passed
	DWORD		m_nFrameCount;

	DWORD		m_nFramePoll;
	DWORD		m_nCurFrame;
	DWORD		m_nSendPoint;	//send out loop
	DWORD		m_nSendTime;
	int			m_nPollCount;
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CTestLFPProtocolView)
	public:
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	virtual void OnInitialUpdate(); // called first time after construct
	virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
	virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
	virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
	virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CTestLFPProtocolView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CTestLFPProtocolView)
	afx_msg void OnAppComSetting();
	afx_msg void OnAppComConnect();
	afx_msg void OnUpdateAppComConnect(CCmdUI* pCmdUI);
	afx_msg void OnAppComDisconnect();
	afx_msg void OnUpdateAppComDisconnect(CCmdUI* pCmdUI);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnSystemSetting();
	afx_msg void OnFileOpen();
	afx_msg void OnUpdateFileOpen(CCmdUI* pCmdUI);
	afx_msg void OnFileSave();
	//}}AFX_MSG
	afx_msg LRESULT MasterReceive( WPARAM wParam, LPARAM lParam );
	DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG  // debug version in TestLFPProtocolView.cpp
inline CTestLFPProtocolDoc* CTestLFPProtocolView::GetDocument()
   { return (CTestLFPProtocolDoc*)m_pDocument; }
#endif

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

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

#endif // !defined(AFX_TESTLFPPROTOCOLVIEW_H__CA9554F0_3CD6_4143_A70C_24879EC05400__INCLUDED_)

⌨️ 快捷键说明

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