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

📄 xt9702slavedlg.h

📁 南瑞xt9702规约
💻 H
字号:
// Xt9702SlaveDlg.h : header file
//

#if !defined(AFX_XT9702SLAVEDLG_H__C3B032EA_3D79_4117_A2EB_9A622193EF7A__INCLUDED_)
#define AFX_XT9702SLAVEDLG_H__C3B032EA_3D79_4117_A2EB_9A622193EF7A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CXt9702SlaveDlg dialog
#include "Xt9702.h"
#include "YcListCtrl.h"
#include "YxListCtrl.h"
#include "ButtonEx.h"
UINT CommProc(  LPVOID pParam  );

#define IDC_BUTTON_START                11
#define IDC_BUTTON_SHOWYX				12
#define IDC_BUTTON_SHOWYC				13
#define IDC_BUTTON_SHOWYM				14
#define IDC_BUTTON_CLEAR				15
class CXt9702SlaveDlg : public CDialog
{
// Construction
public:
	CXt9702SlaveDlg(CWnd* pParent = NULL);	// standard constructor
	~CXt9702SlaveDlg();

	CWinThread*		m_pThread;		// 代表辅助线程
	volatile BOOL	m_bConnected;	//表示连接否,用来标识菜单串口连接和断开连接是否可用
	volatile HANDLE	m_hPostMsgEvent;	// 用于WM_COMMNOTIFY消息的事件对象
	OVERLAPPED		m_osRead;
	OVERLAPPED		m_osWrite;	// 用于重叠读/写
	volatile HANDLE m_hCom;		// 串行口句柄
// Dialog Data
	//{{AFX_DATA(CXt9702SlaveDlg)
	enum { IDD = IDD_XT9702SLAVE_DIALOG };
		// NOTE: the ClassWizard will add data members here
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CXt9702SlaveDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

private:	//串口配置信息
	char	strComNo[8];
	DWORD	dwBaudRate;
	BYTE	DataSize;
	BYTE	Parity;
	BYTE	StopBit;
private:
	CHARFORMAT		RichEdit;
	CEdit*			m_pEdit;
	CRichEditCtrl*	m_pRichEditSend;
	CRichEditCtrl*	m_pRichEditRec;
	CButtonEx*		m_pButton;
	CYxListCtrl*	m_pYxListCtrl;
	CYcListCtrl*	m_pYcListCtrl;
	CYcListCtrl*	m_pYmListCtrl;

	CStatic*		m_pYxNum;
	CStatic*		m_pYcNum;
	CStatic*		m_pYmNum;
	CStatic*		m_pYkNum;
	CEdit*			m_pEditYx;
	CEdit*			m_pEditYc;
	CEdit*			m_pEditYm;
	CEdit*			m_pEditYk;

	CButtonEx*		m_pbtShowYx;
	CButtonEx*		m_pbtShowYc;
	CButtonEx*		m_pbtShowYm;
	CButtonEx*		m_pbtClear;

	void MasterInit( void );
	void MasterProcInit( void );
	void MasterCreate( void );
	void CreateListView( void );

private:
	BOOL		m_bStart;
	COS			m_Cos[128];
	int			savecoscount;
	SOE			m_Soe[128];
	int			savesoecount;
	struYk		m_Yk;
private:
	int			m_nrecState;
	int			m_nState;
	BYTE		m_nFrameType;
	int			m_nCount;		//loops passed
	DWORD		m_nFrameCount;
	DWORD		m_nFramePoll;
	DWORD		m_nCurFrame;
	int			m_nSendState;
	int			m_nInfoCount;
	int			m_nCurInfo;
	int			m_nYCCurInfo;
	int			m_nYXCurInfo;
	int			m_nYMCurInfo;
	int			m_nSOECurInfo;
	int			m_nTimeCurInfo;
	int			m_nNeedInsert;
	BYTE		m_ykAction;
	BYTE		m_ykResult;
	BYTE		m_ykValue;
	int			m_ykOrder;
	BYTE		m_ykEnValue;
	int			m_yxbwFrame;
	int			m_soePoint;
	BYTE	   	m_soeValue;
	BOOL		m_bIsSyn;
	SYSTEMTIME	time;
	static BYTE	crc8table[256];
	struRecBuf	RecBuf;

	BYTE GetCRC8Check( BYTE* buffer, DWORD Datalen );
	BOOL IsGetCRC8Check( BYTE* buffer, DWORD Datalen );
	BOOL IsSynHead( BYTE* buffer );

	void OnShowMSG( BYTE* buffer );
	void OnShowMSG( BYTE buffer1, BYTE buffer2 );

	void OnShowMSG( BYTE* buffer, int len );

	BOOL CreateComm( void );
	void CloseComm( void );
	DWORD WriteCommData( BYTE* buffer, DWORD len );
	DWORD ReadCommData( BYTE* buffer, DWORD len );

	void MainProc( BYTE* buffer, DWORD len );

	void GetYCFrame( int nOrd, BYTE* pBuf );
	void GetYXFrame( int nOrd, BYTE* pBuf, BOOL bIsInsert = FALSE );
	void GetYMFrame( int nOrd, BYTE* pBuf );
	void GetTimeFrame( int nOrd, BYTE* pBuf );
	void GetSOEFrame( int nOrd, BYTE* pBuf );
	BOOL GetCOSFrame( BYTE* pBuf );
	BOOL GetYKFrame( BYTE* pBuf );

	int GetYCFrameCount( void );
	int GetYXFrameCount( void );
	int GetYMFrameCount( void );
	int GetSOEFrameCount( void );

	int	GetCOS( void );
	void ClearCOS( int order );
	int	GetSOE( void );
	void ClearSOE( int order );
	void SetYk( int order, BYTE value, BYTE act );
	BOOL GetYk( int &order, BYTE &value, BYTE &act );
	void ClearYk( void );

public:
	void MainSend( void );
	void SetCOS( int order, BOOL value );
	void SetSOE( int order, BOOL value, SYSTEMTIME soetime );
	// Generated message map functions
	//{{AFX_MSG(CXt9702SlaveDlg)
	virtual BOOL OnInitDialog();
	virtual void OnCancel();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnTimer(UINT nIDEvent);
	//}}AFX_MSG
	afx_msg void OnStart();
	afx_msg void OnShowYx();
	afx_msg void OnShowYc();
	afx_msg void OnShowYm();
	afx_msg void OnClear();
	afx_msg LRESULT MainRecv( WPARAM wParam, LPARAM lParam );
	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_XT9702SLAVEDLG_H__C3B032EA_3D79_4117_A2EB_9A622193EF7A__INCLUDED_)

⌨️ 快捷键说明

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