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