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

📄 dlgtest.cpp

📁 FX2 68013的控制面板源程序
💻 CPP
字号:
////////////////////////////////////////////////////////////////////////////////
// DlgTest.cpp : implementation file
// $Header: /USB/Util/EzMr/DlgTest.cpp 3     8/08/00 2:26p 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 "DlgTest.h"
#include "EzMrDoc.h" // for SendOp()
#include "EzMrFrm.h" // for SendOp()
#include "EzMrView.h" // for SendOp()
#include "main.h" // for PUSBD_INTERFACE_INFORMATION

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

/////////////////////////////////////////////////////////////////////////////
// CDlgTest dialog


CDlgTest::CDlgTest(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgTest::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgTest)
	m_strUsb1Read = _T("");
	m_strUsb1Stat = _T("");
	m_strUsb2Read = _T("");
	m_strUsb2Stat = _T("");
	//}}AFX_DATA_INIT
}


void CDlgTest::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgTest)
	DDX_Text(pDX, IDC_USB_1_READ, m_strUsb1Read);
	DDX_Text(pDX, IDC_USB_1_STAT, m_strUsb1Stat);
	DDX_Text(pDX, IDC_USB_2_READ, m_strUsb2Read);
	DDX_Text(pDX, IDC_USB_2_STAT, m_strUsb2Stat);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgTest, CDialog)
	//{{AFX_MSG_MAP(CDlgTest)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgTest message handlers

BOOL CDlgTest::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	//m_nCableTestOn = 0;
	m_nCableTestOn = 1;
	if (!(m_ntimerID = SetTimer( 0x2000, 1000 /* ms */, 0)))
		theApp.report_error("Couldn't get timer -- Cable Test will not work\n");

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgTest::OnOK() 
{
	TRACE("TPM:CDlgTest::OnOK()\n");
	if(m_nCableTestOn)
	{
		m_nCableTestOn = 0;
		KillTimer(m_ntimerID); // Kill the timer
	}
	else
	{
		m_nCableTestOn = 1;
//		if (!(m_ntimerID = SetTimer( 0x2000, 2000 /* ms */, 0)))
		if (!(m_ntimerID = SetTimer( 0x2000, 1000 /* ms */, 0)))
			theApp.report_error("Couldn't get timer -- Cable Test will not work\n");
	}
	
//	CDialog::OnOK();
}

void CDlgTest::OnCancel() 
{
	TRACE("TPM:CDlgTest::OnCancel()\n");
	KillTimer(m_ntimerID); // Kill the timer

	CDialog::OnCancel();
}

void CDlgTest::OnTimer(UINT nIDEvent) 
{
	TRACE("TPM:CDlgTest::OnTimer():nIDEvent=%x\n", nIDEvent);
	if(nIDEvent == (UINT)m_ntimerID)
	{
		if((m_strUsb1Stat != "Loading ...")&&(m_strUsb2Stat != "Loading ..."))
//		if((theApp.m_strUSBDevs.Find("Ezusb-0") == -1) || (theApp.m_strUSBDevs.Find("Ezusb-1") == -1))
		{
			//theApp.OnFileUpdateAllDevs();
			theApp.OnFileOpenAllDevs();
		}
		TRACE("TPM:CDlgTest::Checking devices()\n");
		if(theApp.m_strUSBDevs.Find("Ezusb-0") != -1)
		{
			POSITION vpos1 = theApp.m_pUSBDoc[0]->GetFirstViewPosition();
			CEzMrView* pView1 = (CEzMrView*)(theApp.m_pUSBDoc[0]->GetNextView(vpos1));
			//if((m_strUsb1Stat != "Loading ...")&&(m_strUsb1Stat != "Running ..."))
			if((m_strUsb1Stat != "Loading ...")&&(m_strUsb1Stat != "Running ...")&&(theApp.m_strUSBDevs.Find("Ezusb-1") != -1))
			{
				m_strUsb1Stat = "Loading ...";
				UpdateData(FALSE);
				if(pView1->LoadEEPROM())
				{ //problem programming eeprom
					m_strUsb1Read = "BAD E2";
					m_strUsb1Stat = "Not Available";
					UpdateData(FALSE);
				}
				else
					pView1->LoadLoopTest();
			}
		}
		else
		{
			m_strUsb1Read = "BAD";
			m_strUsb1Stat = "Not Available";
			UpdateData(FALSE);
		}
		if(theApp.m_strUSBDevs.Find("Ezusb-1") != -1)
		{
			POSITION vpos2 = theApp.m_pUSBDoc[1]->GetFirstViewPosition();
			CEzMrView* pView2 = (CEzMrView*)(theApp.m_pUSBDoc[1]->GetNextView(vpos2));
			if((m_strUsb2Stat != "Loading ...")&&(m_strUsb2Stat != "Running ..."))
			{
				m_strUsb2Stat = "Loading ...";
				UpdateData(FALSE);
				if(pView2->LoadEEPROM())
				{ //problem programming eeprom
					m_strUsb2Read = "BAD E2";
					m_strUsb2Stat = "Not Available";
					UpdateData(FALSE);
				}
				else
					pView2->LoadLoopTest();
			}
		}
		else
		{
			m_strUsb2Read = "BAD";
			m_strUsb2Stat = "Not Available";
			UpdateData(FALSE);
		}
		if((theApp.m_strUSBDevs.Find("Ezusb-0") != -1) && (theApp.m_strUSBDevs.Find("Ezusb-1") != -1))
		{ // do the loop back test
			if((m_strUsb1Stat != "Not Available")&&(m_strUsb2Stat != "Not Available"))
			{
			TRACE("TPM:CDlgTest::get the loop back test timer()\n");
			if (!(m_nLoopTimerID = SetTimer( 0x2001, 750 /* ms */, 0)))
//			if (!(m_nLoopTimerID = SetTimer( 0x2001, 1000 /* ms */, 0)))
			theApp.report_error("Couldn't get m_nLoopTimerID -- Cable Test will not work\n");
//			OnOK(); // stop it!
			}
		}

	}
	else if(nIDEvent == (UINT)m_nLoopTimerID)
	{
		TRACE("TPM:CDlgTest::do the loop back test()\n");
		KillTimer(m_nLoopTimerID); // Kill the timer

		if(theApp.m_strUSBDevs.Find("Ezusb-0") != -1)
		{
			POSITION vpos1 = theApp.m_pUSBDoc[0]->GetFirstViewPosition();
			CEzMrView* pView1 = (CEzMrView*)(theApp.m_pUSBDoc[0]->GetNextView(vpos1));
			if(m_strUsb1Stat != "Running ...")
			{
					m_strUsb1Stat = "Running ...";
					UpdateData(FALSE);
			}
			  else if(theApp.m_strUSBDevs.Find("Ezusb-1") != -1)
			  {
				POSITION vpos2 = theApp.m_pUSBDoc[1]->GetFirstViewPosition();
				CEzMrView* pView2 = (CEzMrView*)(theApp.m_pUSBDoc[1]->GetNextView(vpos2));
				if(m_strUsb2Stat != "Running ...")
				{
					m_strUsb2Stat = "Running ...";
					UpdateData(FALSE);
				}
					else
					{
						char* pWr;
						char* pRd;

						pView1->SendOp(OP_GET_DEVDES);
						pUsb_Device_Descriptor pDevDesc = (pUsb_Device_Descriptor)theApp.m_uDevDescInfo;
						if((pDevDesc->idProduct != 0x2750))
						{
							m_strUsb1Read = "Failed Renum";
							UpdateData(FALSE);
						}
						pView1->SendOp(OP_GET_PIPINF);
						PUSBD_INTERFACE_INFORMATION pInterface = (PUSBD_INTERFACE_INFORMATION) theApp.m_uInterfaceInfo;
						if((pInterface->NumberOfPipes == 2) && (pDevDesc->idProduct == 0x2750))
						{ // dev renumerated
							pView2->SendOp(OP_GET_DEVDES);
							pUsb_Device_Descriptor pDevDesc = (pUsb_Device_Descriptor)theApp.m_uDevDescInfo;
							if((pDevDesc->idProduct != 0x2750))
							{
								m_strUsb2Read = "Failed Renum";
								UpdateData(FALSE);
							}
							pView2->SendOp(OP_GET_PIPINF);
							PUSBD_INTERFACE_INFORMATION pInterface = (PUSBD_INTERFACE_INFORMATION) theApp.m_uInterfaceInfo;
							if((pInterface->NumberOfPipes == 2) && (pDevDesc->idProduct == 0x2750))
							{
/**/
								pView2->LoopOut();
								pView1->LoopIn();
								pWr = pView2->GetBlkBuf();
								pRd = pView1->GetBlkBuf();
								if(!memcmp(pRd, pWr, 64))
									m_strUsb1Read = "GOOD";
								else
									m_strUsb1Read = "BAD";
								pView1->LoopOut();
								pView2->LoopIn();
								pWr = pView1->GetBlkBuf();
								pRd = pView2->GetBlkBuf();
								if(!memcmp(pRd, pWr, 64))
									m_strUsb2Read = "GOOD";
								else
									m_strUsb2Read = "BAD";
								UpdateData(FALSE);
/**/
							}
							else
							{
								m_strUsb2Read = "BAD";
								m_strUsb2Stat = "Bad Load";
								UpdateData(FALSE);
							}
						}
						else
						{
							m_strUsb2Read = "BAD";
							m_strUsb2Stat = "Bad Load";
							UpdateData(FALSE);
						}
					}

			}
		}
	}
	
	CDialog::OnTimer(nIDEvent);
}

⌨️ 快捷键说明

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