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

📄 canrecvdlg.h

📁 can端口的收数据的测试
💻 H
字号:
// CANRecvDlg.h : header file
//

#if !defined(AFX_CANRECVDLG_H__56AEBC6B_70D3_420A_9883_83587638A5BF__INCLUDED_)
#define AFX_CANRECVDLG_H__56AEBC6B_70D3_420A_9883_83587638A5BF__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;

/////////////////////////////////////////////////////////////////////////////
// CCANRecvDlg dialog

class CCANRecvDlg : public CDialog
{
// Construction
public:
	CCANRecvDlg(CWnd* pParent = NULL);	// standard constructor
    LONG AllocMsgMem();
    LONG FreeMsgMem();

// member variable
private:
	static WORD m_nPort;	//1 based
	WORD m_nBaudRate;
	WORD m_nHostID;

	UINT m_nBTR0;
	UINT m_nBTR1;

	UINT m_nAcpCode;
	UINT m_nAcpMask;
	UINT m_nIntMask;
	UINT m_nOutCtrlCode;
    UINT m_nProtocolType;
    BOOL m_bOpen;

    // filter data for 2.0B only
    CString         m_sFilter;
    int             m_nFilterCode0;
    int             m_nFilterCode1;
    int             m_nFilterCode2;
    int             m_nFilterCode3;
    int             m_nFilterMask0;
    int             m_nFilterMask1;
    int             m_nFilterMask2;
    int             m_nFilterMask3;

    LONG       m_nCount;
    static ULONG     m_nIndex; 
    static ULONG     m_nPreIndex; 
    static CListBox* m_lstDisplay;
    static CStatic*  m_lbBufferIndex;
    static PVOID     m_pData;
    static int		 m_nBufferSize;

    HANDLE m_pListenThread;
    static BOOL   m_bKillListenThread;
    static HANDLE m_hKillListenThread;
    static HANDLE m_hListenEvent;
	
    static DWORD WINAPI ListenThreadProc(PVOID pContext);
    static LONG  ListenEventHandler(WORD wPort);

    HANDLE m_pCountingThread;
    static BOOL   m_bKillCountingThread;
    static HANDLE m_hKillCountingThread;
    static HANDLE m_hCountingEvent;
    static DWORD WINAPI CountingThreadProc(PVOID pContext);
    static LONG  CountingEventHandler(WORD wPort);

    LONG CreateThreadHandling(WORD wPort);
    LONG CloseThreadHandling(WORD wPort);


public:
// Dialog Data
	//{{AFX_DATA(CCANRecvDlg)
	enum { IDD = IDD_CANRECV_DIALOG };
	int		m_nDevNum;
	CString	m_sBufferIndex;
	//}}AFX_DATA

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

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CCANRecvDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnInitBtn();
	afx_msg void OnClearCountBtn();
	afx_msg void OnClose();
	afx_msg void OnClearListBtn();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_CANRECVDLG_H__56AEBC6B_70D3_420A_9883_83587638A5BF__INCLUDED_)

⌨️ 快捷键说明

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