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

📄 pcieboardtestdlg.h

📁 PCI的一个测试程序,可以测试PCI driver和BOARD的功能.
💻 H
字号:
// PCIEBoardTestDlg.h : 头文件
//

#pragma once
#include "afxcmn.h"

#include "chartdata.h"
#include "afxwin.h"

#ifdef  MIN
#else
#define MIN(a,b)    ((a) > (b) ? (b) : (a))
#define MAX(a,b)    ((a) > (b) ? (a) : (b))
#endif

#define     CHART_H2D_PERF_NS   0
#define     CHART_H2D_DONE_NS   1
#define     CHART_H2D_APP_NS    2

#define     CHART_D2H_PERF_NS   3
#define     CHART_D2H_DONE_NS   4
#define     CHART_D2H_APP_NS    5

#define     CHART_FULL_APP_NS   6

#define     CHART_DATA_TOTAL    7

// h2d perf, h2d done tsc, h2d app tsc, d2h perf, d2h done tsc, d2h app tsc

// CPCIEBoardTestDlg 对话框
class CPCIEBoardTestDlg : public CDialog
{
// 构造
public:
	CPCIEBoardTestDlg(CWnd* pParent = NULL);	// 标准构造函数
    ~CPCIEBoardTestDlg();

// 对话框数据
	enum { IDD = IDD_PCIEBOARDTEST_DIALOG };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持

public:
    CPageDevice     m_PageDevice;
    CPageTest       m_PageTest;
    CPageDebug      m_PageDebug;
    CPageChart      m_PageChart;

// 实现
protected:
	HICON m_hIcon;

	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
public:
    afx_msg void OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult);
    CTabCtrl m_TabCtrl;

private:
    HANDLE  m_hDevHandle;
    CString m_strDevInfor;
    void *  m_pUserAddress_d2h;
    void *  m_pPhysicalAddress_d2h;
    ULONG   m_uUserAddressLen_d2h;
    void *  m_pUserAddress_h2d;
    void *  m_pPhysicalAddress_h2d;
    ULONG   m_uUserAddressLen_h2d;

    //
public:
    ULONG   m_uChartDataSize[CHART_DATA_TOTAL];
    TPOINT * m_pChartData[CHART_DATA_TOTAL];    // h2d perf, h2d done tsc, h2d app tsc, d2h perf, d2h done tsc, d2h app tsc

public:
    void    SetChartData(int ChartType, int Size, TPOINT * pChartData);
    void    ClearChartData(int mode = 2);

	void    ReadINI();

public:
    HANDLE  GetDeviceHandle();
    void    GetDeviceInfor(CString& p_strDevInfor);
    void    SetDeviceHandle(HANDLE p_hDevHandle);
    void    SetDeviceInfor(CString& p_strDevInfor);

    void *  GetUserVirtualBuffer_d2h();
    void *  GetPhysicalBuffer_d2h();
    ULONG   GetUserVirtualBufferLen_d2h();
    void *  GetUserVirtualBuffer_h2d();
    void *  GetPhysicalBuffer_h2d();
    ULONG   GetUserVirtualBufferLen_h2d();

    void    SetBufferAddress_d2h(void *pAddress_d2h, void *pPhysicalAddress_d2h, ULONG uLen);
    void    SetBufferAddress_h2d(void *pAddress_h2d, void *pPhysicalAddress_h2d, ULONG uLen);

    void    UpdatePage();

public:
    afx_msg void OnTimer(UINT nIDEvent);
    afx_msg void OnBnClickedCancel();

private:
    CMenu   m_MainMenu;
public:
    afx_msg void OnAppExit();
//    afx_msg void OnBnClickedOk();
    afx_msg void OnSize(UINT nType, int cx, int cy);

private:
    BOOL    m_bFirstTimer;
public:
    afx_msg void OnTcnSelchangingTab1(NMHDR *pNMHDR, LRESULT *pResult);

    void Log(const char *p_szLogInfor);

    int     m_iLogSeq;
    CListCtrl m_lstLog;
    afx_msg void OnAppAbout();
	afx_msg void OnAppClearlog();
};

inline CPCIEBoardTestDlg *  GetDlg()
{
    return (CPCIEBoardTestDlg *)AfxGetMainWnd();
}

⌨️ 快捷键说明

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