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

📄 ezmrfrm.cpp

📁 FX2 68013的控制面板源程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
////////////////////////////////////////////////////////////////////////////////
// EzMrFrm.cpp : implementation of the CEzMrFrame class
// $Header: /USB/Util/EzMr/EzMrFrm.cpp 8     3/07/02 11:18p Tpm $
// Copyright (c) 2000 Cypress Semiconductor. May not be reproduced without permission.
// See the EzUsb Developer's Kit license agreement for more details.
////////////////////////////////////////////////////////////////////////////////


#include "stdafx.h"
#include "EzMr.h"
#include "main.h" // for PUSBD_INTERFACE_INFORMATION

#include "EzMrFrm.h" //TPMDo: Add ToolBar manually

#include "EzMrDoc.h"
#include "EzMrView.h" // for SendOp()

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define MAX_CBOX_STRING 193 // 64 (2 nibble) hex values max

/////////////////////////////////////////////////////////////////////////////
// CEzMrFrame

PCHAR g_strIoctl[] =
{
	"Get Device Desc",
	"Get Config Desc",
	"Get Pipe Info",
	"Vendor Request",
	"Bulk Byte Transfer",
	"Anchor Download",
	"Reset Pipe",
	"Abort Pipe",
	"ISO Transfer",
	"Set Interface",
	"8051 Reset Hold",
	"8051 Reset Release",
	"Get URB Status",
	"Get Current Frame",
	"Get String Desc",
	"Reset Port"
};

IMPLEMENT_DYNCREATE(CEzMrFrame, CMDIChildWnd)

BEGIN_MESSAGE_MAP(CEzMrFrame, CMDIChildWnd)

	//{{AFX_MSG_MAP(CEzMrFrame)
	ON_WM_CREATE()
	ON_WM_CLOSE()
	//}}AFX_MSG_MAP

	ON_COMMAND_EX(CG_ID_VIEW_USBDEV, OnBarCheck)
	ON_UPDATE_COMMAND_UI(CG_ID_VIEW_USBDEV, OnUpdateControlBarMenu)
	ON_COMMAND_EX(CG_ID_VIEW_DLGMAIN, OnBarCheck)
	ON_UPDATE_COMMAND_UI(CG_ID_VIEW_DLGMAIN, OnUpdateControlBarMenu)
	ON_COMMAND_EX(ID_VIEW_TBAR_VEN, OnBarCheck) //TPMDo: Add m_wndTBarVen manually
	ON_UPDATE_COMMAND_UI(ID_VIEW_TBAR_VEN, OnUpdateControlBarMenu)
	ON_COMMAND_EX(ID_VIEW_TBAR_ISO, OnBarCheck) //TPMDo: Add m_wndTBarIso manually
	ON_UPDATE_COMMAND_UI(ID_VIEW_TBAR_ISO, OnUpdateControlBarMenu)
	ON_COMMAND_EX(ID_VIEW_TBAR_DLD, OnBarCheck) //TPMDo: Add m_wndTBarDld manually
	ON_UPDATE_COMMAND_UI(ID_VIEW_TBAR_DLD, OnUpdateControlBarMenu)
	ON_COMMAND_EX(ID_VIEW_TBAR_BLK, OnBarCheck) //TPMDo: Add m_wndTBarBlk manually
	ON_UPDATE_COMMAND_UI(ID_VIEW_TBAR_BLK, OnUpdateControlBarMenu)
	ON_COMMAND_EX(ID_VIEW_TBAR_FIL, OnBarCheck) //TPMDo: Add m_wndTBarFil manually
	ON_UPDATE_COMMAND_UI(ID_VIEW_TBAR_FIL, OnUpdateControlBarMenu)
	ON_COMMAND_EX(ID_VIEW_TBAR_RES, OnBarCheck) //TPMDo: Add m_wndTBarRes manually
	ON_UPDATE_COMMAND_UI(ID_VIEW_TBAR_RES, OnUpdateControlBarMenu)
	ON_COMMAND_EX(ID_VIEW_TBAR_UNA, OnBarCheck) //TPMDo: Add m_wndTBarUna manually
	ON_UPDATE_COMMAND_UI(ID_VIEW_TBAR_UNA, OnUpdateControlBarMenu)
	ON_COMMAND_EX(ID_VIEW_TBAR_CFG, OnBarCheck) //TPMDo: Add m_wndTBarCfg manually
	ON_UPDATE_COMMAND_UI(ID_VIEW_TBAR_CFG, OnUpdateControlBarMenu)


	ON_CBN_SELCHANGE(IDC_SEL_OP, OnSelChangeOp)
	ON_CBN_SELCHANGE(IDW_TBAR_DRV, OnSelChangeDev)
	ON_CBN_SELCHANGE(IDL_BLK_TYPE, OnSelChangeBlk)
	ON_CBN_EDITCHANGE(IDC_VENDOR_DATA, OnEditVenData)
	ON_CBN_SELCHANGE(IDC_VENDOR_DATA, OnEditVenData)
	ON_CBN_SELCHANGE(IDC_DIRECTION, OnEditVenData)
	ON_CBN_EDITCHANGE(IDC_DATA_VALUE, OnEditchangeData)
	ON_CBN_SELCHANGE(IDC_DATA_VALUE, OnEditchangeData)
	ON_CBN_SELCHANGE(IDC_BLK_PIPE, OnEditchangeData)

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEzMrFrame construction/destruction

CEzMrFrame::CEzMrFrame()
{
	m_pTxt_idx = 0;
}

CEzMrFrame::~CEzMrFrame()
{
	for(int idx=0; idx<m_pTxt_idx; idx++)
	{
			delete m_pTxt[idx];
	}
}

BOOL CEzMrFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	return CMDIChildWnd::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CEzMrFrame diagnostics

#ifdef _DEBUG
void CEzMrFrame::AssertValid() const
{
	CMDIChildWnd::AssertValid();
}

void CEzMrFrame::Dump(CDumpContext& dc) const
{
	CMDIChildWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CEzMrFrame message handlers

void CEzMrFrame::NewTBarText(CToolBar* pTB, int idx, UINT nID, int nPw, char* pLbl)
{
	CRect rect;
	CFont* pFont = m_wndTBarOps.GetFont(); // used hereafter
	m_pTxt[m_pTxt_idx] = new CStatic();
	pTB->SetButtonInfo(idx, nID, TBBS_SEPARATOR, nPw);
	pTB->GetItemRect(idx, &rect);
	rect.top += 4;
	m_pTxt[m_pTxt_idx]->Create(pLbl, WS_CHILD | WS_VISIBLE, rect, pTB, nID);
	m_pTxt[m_pTxt_idx]->SetFont(pFont, TRUE);
	m_pTxt_idx++;
}

void CEzMrFrame::NewTBarEBox(CToolBar* pTB, int idx, UINT nID, int nPw, char* pLbl, CEdit* pEB)
{
	CRect rect;
	pTB->SetButtonInfo(idx, nID, TBBS_SEPARATOR, nPw);
	pTB->GetItemRect(idx, &rect);
	pEB->Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, rect, pTB, nID);
	pEB->SetWindowText(pLbl);
}


int CEzMrFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	CRect rect;

	if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	{ //TPMDo: Add Operations ToolBar manually; OnCreate function from WM_CREATE msg handler
		if (!m_wndTBarOps.Create(this,
			WS_CHILD | CBRS_TOP | WS_VISIBLE | 
			CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
			ID_VIEW_TBAR_OPS) ||
			!m_wndTBarOps.LoadToolBar(IDR_TBAR_OPS))
		{
			TRACE0("Failed to create dialog bar m_wndTBarOps\n");
			return -1;		// fail to create
		}

		m_wndTBarOps.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
		EnableDocking(CBRS_ALIGN_ANY);
		DockControlBar(&m_wndTBarOps);

	
		m_wndTBarOps.SetButtonInfo(0, IDC_SEL_OP, TBBS_SEPARATOR, 184); // bogart a space
		m_wndTBarOps.GetItemRect(0, &rect);
		rect.top = 0;
		rect.bottom = rect.top + 250;
		if (!m_CBoxOps.Create(
			CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_CHILD,
			rect, &m_wndTBarOps, IDC_SEL_OP))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		for(int idx=0; idx<MAX_OP_NUMBER; idx++)
		{
			m_CBoxOps.AddString(g_strIoctl[idx]);
		}

		m_CBoxOps.SetCurSel(2);

		NewTBarText(&m_wndTBarOps, 4, IDC_BDRIVER_NAME, 40, "Device");
		m_wndTBarOps.SetButtonInfo(5, IDW_TBAR_DRV, TBBS_SEPARATOR, 90); // bogart
		m_wndTBarOps.GetItemRect(5, &rect);
		rect.top = 0;
		rect.bottom = rect.top + 100;
		if (!m_CBoxDrv.Create(
			CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_CHILD,
			rect, &m_wndTBarOps, IDW_TBAR_DRV))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		UpdDrvCBox();
		m_CBoxDrv.SetCurSel(0);
		m_SelDrv = 0;
	}

	{ //TPMDo: Add m_wndTBarUna manually; Add ID_VIEW_TBAR_UNA menu toggle option
		if (!m_wndTBarUna.Create(this,
			WS_CHILD | CBRS_TOP | WS_VISIBLE | 
			CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
			ID_VIEW_TBAR_UNA) ||
			!m_wndTBarUna.LoadToolBar(IDR_TBAR_UNA))
		{
			TRACE0("Failed to create dialog bar m_wndTBarUna\n");
			return -1;		// fail to create
		}

		m_wndTBarUna.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
		EnableDocking(CBRS_ALIGN_ANY);
		DockControlBar(&m_wndTBarUna);
		m_wndTBarUna.SetWindowText("Unary Operations");
	}

	{ //TPMDo: Add m_wndTBarVen manually; Add ID_VIEW_TBAR_VEN menu toggle option
		if (!m_wndTBarVen.Create(this,
			WS_CHILD | CBRS_TOP | WS_VISIBLE | 
			CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
			ID_VIEW_TBAR_VEN) ||
			!m_wndTBarVen.LoadToolBar(IDR_TBAR_VEN))
		{
			TRACE0("Failed to create dialog bar m_wndTBarVen\n");
			return -1;		// fail to create
		}

		m_wndTBarVen.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
		EnableDocking(CBRS_ALIGN_ANY);
		DockControlBar(&m_wndTBarVen);

		NewTBarText(&m_wndTBarVen, 2, ID_BREQ, 30, "Req");
		NewTBarEBox(&m_wndTBarVen, 3, IDC_BREQUEST, 50, "0xA2", &m_EBoxReq);

		NewTBarText(&m_wndTBarVen, 5, ID_BVAL, 30, "Value");
		NewTBarEBox(&m_wndTBarVen, 6, IDC_WVALUE, 70, "0x0000", &m_EBoxVal);

		NewTBarText(&m_wndTBarVen, 8, ID_BIND, 30, "Index");
		NewTBarEBox(&m_wndTBarVen, 9, IDC_WINDEX, 70, "0xBEEF", &m_EBoxInd);

		NewTBarText(&m_wndTBarVen, 11, ID_BLEN, 37, "Length");
		NewTBarEBox(&m_wndTBarVen, 12, IDC_WLENGTH, 50, "16", &m_EBoxLen);

		NewTBarText(&m_wndTBarVen, 14, ID_BDIR, 18, "Dir");
		m_wndTBarVen.SetButtonInfo(15, IDC_DIRECTION, TBBS_SEPARATOR, 64); // bogart
		m_wndTBarVen.GetItemRect(15, &rect);
		rect.top = 0;
		rect.bottom = rect.top + 200;
		if (!m_CBoxVenDir.Create(
			CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|CBS_AUTOHSCROLL|WS_CHILD,
			rect, &m_wndTBarVen, IDC_DIRECTION))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		m_CBoxVenDir.AddString("1 IN");
		m_CBoxVenDir.AddString("0 OUT");
		m_CBoxVenDir.SetCurSel(0);
		
//		NewTBarText(&m_wndTBarVen, 17, ID_BDAT, 55, "Hex Bytes");
		NewTBarText(&m_wndTBarVen, 17, ID_BDAT, 54, "Hex Bytes");
		m_wndTBarVen.SetButtonInfo(18, IDC_VENDOR_DATA, TBBS_SEPARATOR, 160); // bogart
		m_wndTBarVen.GetItemRect(18, &rect);
		rect.top = 0;
		rect.bottom = rect.top + 200;
		if (!m_CBoxVenData.Create(
			CBS_DROPDOWN|WS_VISIBLE|WS_TABSTOP|CBS_AUTOHSCROLL|WS_CHILD,
			rect, &m_wndTBarVen, IDC_VENDOR_DATA))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		m_CBoxVenData.AddString(IDS_USB_EE_DEV);
		m_CBoxVenData.AddString(IDS_USB_EE_EZLINK);
		m_CBoxVenData.AddString(IDS_USB_EE_EXAMPLE);
		m_CBoxVenData.SetCurSel(0);
		

	} //TPMDo: Add m_wndTBarVen manually; Add IDC_BREQUEST ID and string

	{ //TPMDo: Add m_wndTBarIso manually; Add ID_VIEW_TBAR_ISO menu toggle option
		if (!m_wndTBarIso.Create(this,
			WS_CHILD | CBRS_TOP | WS_VISIBLE | 
			CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
			ID_VIEW_TBAR_ISO) ||
			!m_wndTBarIso.LoadToolBar(IDR_TBAR_ISO))
		{
			TRACE0("Failed to create dialog bar m_wndTBarIso\n");
			return -1;		// fail to create
		}

		m_wndTBarIso.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
		EnableDocking(CBRS_ALIGN_ANY);
		DockControlBar(&m_wndTBarIso);

		NewTBarText(&m_wndTBarIso, 2, ID_BPIPE, 30, "Pipe");
		m_wndTBarIso.SetButtonInfo(3, IDC_ISO_PIPE, TBBS_SEPARATOR, 160); // bogart
		m_wndTBarIso.GetItemRect(3, &rect);
		rect.top = 0;
		rect.bottom = rect.top + 200;
		if (!m_CBoxIsoPipe.Create(
			CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_CHILD,
			rect, &m_wndTBarIso, IDC_ISO_PIPE))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}

		NewTBarText(&m_wndTBarIso, 5, ID_BPACKETS, 45, "Packets");
		NewTBarEBox(&m_wndTBarIso, 6, IDC_ISO_PACKETS, 50, "128", &m_EBoxPack);

		NewTBarText(&m_wndTBarIso, 8, ID_BSIZE, 30, "Size");
		NewTBarEBox(&m_wndTBarIso, 9, IDC_ISO_SIZE, 50, "16", &m_EBoxSize);

		NewTBarText(&m_wndTBarIso, 11, ID_BISO_BUF_CNT, 40, "Buffers");
		NewTBarEBox(&m_wndTBarIso, 12, IDC_ISO_BUF_CNT, 50, "2", &m_EBoxIsoBufCnt);

		NewTBarText(&m_wndTBarIso, 14, ID_BPAK_PER, 80, "Frames / Buffer");
		NewTBarEBox(&m_wndTBarIso, 15, IDC_PAK_PER, 50, "8", &m_EBoxIsoPakPer);

	}

	{ //TPMDo: Add m_wndTBarBlk manually; Add ID_VIEW_TBAR_BLK menu toggle option
		if (!m_wndTBarBlk.Create(this,
			WS_CHILD | CBRS_TOP | WS_VISIBLE | 
			CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
			ID_VIEW_TBAR_BLK) ||
			!m_wndTBarBlk.LoadToolBar(IDR_TBAR_BLK))
		{
			TRACE0("Failed to create dialog bar m_wndTBarBlk\n");
			return -1;		// fail to create
		}

		m_wndTBarBlk.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
		EnableDocking(CBRS_ALIGN_ANY);
		DockControlBar(&m_wndTBarBlk);

		NewTBarText(&m_wndTBarBlk, 2, IDC_BBLK_PIPE, 30, "Pipe");
		m_wndTBarBlk.SetButtonInfo(3, IDC_BLK_PIPE, TBBS_SEPARATOR, 160); // bogart
		m_wndTBarBlk.GetItemRect(3, &rect);
		rect.top = 0;
		rect.bottom = rect.top + 200;
		if (!m_CBoxBlkPipe.Create(
			CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_CHILD,
			rect, &m_wndTBarBlk, IDC_BLK_PIPE))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}

		NewTBarText(&m_wndTBarBlk, 5, IDC_BEDIT_WRITE_DATA_LENGTH, 45, "Length");
		NewTBarEBox(&m_wndTBarBlk, 6, IDC_DATA_LENGTH, 50, "64", &m_EBoxBlkLen);

		NewTBarText(&m_wndTBarBlk, 8, IDC_BDATA_VALUE, 55, "Hex Bytes");

⌨️ 快捷键说明

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