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

📄 canloopbackdlg.h

📁 对研华公司工控机can口的测试
💻 H
字号:
// CANLoopbackDlg.h : header file
//

#if !defined(AFX_CANLOOPBACKDLG_H__9C6E5E31_6945_4A36_B71F_29CD4E037DAF__INCLUDED_)
#define AFX_CANLOOPBACKDLG_H__9C6E5E31_6945_4A36_B71F_29CD4E037DAF__INCLUDED_

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

typedef struct {
    UCHAR rtr;      // EFF RTR 0 0 DLC.3 DLC.2 DLC.1 DLC.0 
    ULONG id;       // not present in standard frames 
	UCHAR dlen;
    UCHAR data[8];
} CAN_MSG_T, *PCAN_MSG_T;

/////////////////////////////////////////////////////////////////////////////
// CCANLoopbackDlg dialog

class CCANLoopbackDlg : public CDialog
{
// variable
private:
	static WORD m_nPort;	//1 based
	WORD m_nHostID;
    WORD m_nPreBaudRate;

	UINT m_nBTR0;
	UINT m_nBTR1;

	UINT m_nAcpCode;
	UINT m_nAcpMask;
	UINT m_nIntMask;
	UINT m_nOutCtrlCode;

    static ULONG     m_nIndex; 
    static ULONG     m_nPreIndex; 

    static CAN_MSG_T m_pData;
    static CAN_MSG_T m_msg;

    static CDialog * m_pDlg;
	static CString	m_sRecvMessage; 
	static int		m_nHostCANID;
	static int		m_nRecvCANID;
	static int		m_nSendCANID;
    static CStatic * m_ctrlRecvMessage;
    BOOL   m_bOpen;

// Construction
public:
	CCANLoopbackDlg(CWnd* pParent = NULL);	// standard constructor

    LONG CreateRecvThreadHandling(WORD wPort);
    LONG CloseRecvThreadHandling(WORD wPort);

    HANDLE m_pRecvThread;
    static BOOL   m_bKillRecvThread;
    static HANDLE m_hKillRecvThread;
    static HANDLE m_hRecvEvent;
	
    static DWORD WINAPI RecvThreadProc(PVOID pContext);
    static LONG  RecvEventHandler(WORD wPort);

    LONG CreateSendThreadHandling(WORD wPort);
    LONG CloseSendThreadHandling(WORD wPort);

    HANDLE m_pSendThread;
    static BOOL   m_bKillSendThread;
    static HANDLE m_hKillSendThread;
    static HANDLE m_hSendEvent;
	
    static DWORD WINAPI SendThreadProc(PVOID pContext);
    static LONG  SendEventHandler(WORD wPort);

// Dialog Data
	//{{AFX_DATA(CCANLoopbackDlg)
	enum { IDD = IDD_CANLOOPBACK_DIALOG };
	int		m_nDevNum;
	CString	m_sSendMessage;
	//}}AFX_DATA

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

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CCANLoopbackDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnClose();
	afx_msg void OnOpenPortBtn();
	afx_msg void OnClosePortBtn();
	afx_msg void OnSendMsgBtn();
	afx_msg void OnRecvMsgBtn();
	afx_msg void OnLoopSendBtn();
	afx_msg void OnLoopRecvBtn();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_CANLOOPBACKDLG_H__9C6E5E31_6945_4A36_B71F_29CD4E037DAF__INCLUDED_)

⌨️ 快捷键说明

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