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