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