亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? isocmdtab.cpp

?? 基于ARM的應用Source6
?? CPP
字號:
/*----------------------------------------------------------------------------
 *  Copyright (c) 2001 by National Semiconductor Corporation
 *  National Semiconductor Corporation
 *  2900 Semiconductor Drive
 *  Santa Clara, California 95051
 *
 *  All rights reserved
 *
 *<<<-------------------------------------------------------------------------
 * File Contents:
 *	isoCmdTab.cpp - this class defines Isochronous test GUI tab. The Isochronous tests settings
 *					 are received from the user and are transfered to the IsoFunc class.
 *
 *  Project: USB Demo Application
 *  Author : Yan Nosovitsky
 *  Date   : Dec 2001
 *----------------------------------------------------------------------->>>*/

// isoCmdTab.cpp : implementation file
//

#include "stdafx.h"
#include "Demo.h"
#include "isoCmdTab.h"
#include "USBDriver.h"
#include "IsoFunc.h"
#include <afxtempl.h>

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

/////////////////////////////////////////////////////////////////////////////
// isoCmdTab dialog


isoCmdTab::isoCmdTab(CWnd* pParent /*=NULL*/)
	: CDialog(isoCmdTab::IDD, pParent)
{
	//{{AFX_DATA_INIT(isoCmdTab)
	//}}AFX_DATA_INIT
	isoFunc = new IsoFunc(this);
	isUnderTest = FALSE;
}


void isoCmdTab::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(isoCmdTab)
	DDX_Control(pDX, IDC_LIST_ISO_PIPES, m_pipesList);
	DDX_Control(pDX, IDC_PROGRESS_BAR, m_progressBar);
	DDX_Control(pDX, IDC_LOOP_SIZE_EDIT, m_loopSize);
	DDX_Control(pDX, IDC_HEX_BYTE_EDIT, m_hexByte);
	DDX_Control(pDX, IDC_DATA_SIZE_EDIT, m_dataSize);
	DDX_Control(pDX, IDC_FILE_RADIO, m_fileRadio);
	DDX_Control(pDX, IDC_INCR_RADIO, m_incrRadio);
	DDX_Control(pDX, IDC_FILE_NAME, m_fileName);
//	DDX_Control(pDX, IDC_DMA_USE, m_dmaUse);
	DDX_Control(pDX, IDC_BUTTON_ISO_GO, m_buttonGo);
	DDX_Control(pDX, IDC_BUTTON_ISO_DET, m_buttonDet);
	DDX_Control(pDX, IDC_BUTTON_BROWSE, m_buttonBrowse);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(isoCmdTab, CDialog)
	//{{AFX_MSG_MAP(isoCmdTab)
	ON_BN_CLICKED(IDC_BUTTON_BROWSE, OnButtonBrowse)
	ON_LBN_SELCHANGE(IDC_LIST_ISO_PIPES, OnSelchangeListIsoPipes)
	ON_BN_CLICKED(IDC_BUTTON_ISO_GO, OnButtonIsoGo)
	ON_BN_CLICKED(IDC_BUTTON_ISO_DET, OnButtonIsoDet)
	ON_BN_CLICKED(IDC_FILE_RADIO, OnFileRadio)
	ON_BN_CLICKED(IDC_INCR_RADIO, OnIncrRadio)
	ON_COMMAND(IDCANCEL, OnCancel)
	ON_COMMAND(IDOK, OnOK)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

void isoCmdTab::UpdatePipes()
{
	int i;
	int numOfPipes =  isoFunc->CheckPipes() ;
	CString pipeDMA;

	if (!isUnderTest)
	{
		/* clean previous pipes and choise*/
		m_pipesList.ResetContent();
//		m_dmaUse.ResetContent();
//		m_dmaUse.AddString(_T("None"));
		for (i = 0; i < numOfPipes; i++)
		{
			m_pipesList.AddString(isoFunc->getPipeInfo(i));
			pipeDMA.Format(_T("Pipe num %d"),i+1);
//			m_dmaUse.AddString(pipeDMA);
		}
//		m_dmaUse.SetCurSel(0);

		EnableLoopbackControl(FALSE);
		EnableOneDirControl(FALSE);
		m_buttonGo.EnableWindow(FALSE);
		m_buttonDet.EnableWindow(FALSE);
//		m_dmaUse.EnableWindow(FALSE);
	}
	else
	{
		/* restore previos choise */

	}
}

void isoCmdTab::EnableLoopbackControl(bool bEnable)
{

	m_fileRadio.EnableWindow(bEnable);
	m_incrRadio.EnableWindow(bEnable);
	if ( !bEnable )
	{
		m_buttonBrowse.EnableWindow(FALSE);
		m_fileName.EnableWindow(FALSE);
		m_loopSize.EnableWindow(FALSE);
	}
	else
	{
		if (m_fileRadio.GetCheck())
		{
			m_fileName.EnableWindow(TRUE);
			m_buttonBrowse.EnableWindow(TRUE);
		}
		else
			m_loopSize.EnableWindow(TRUE);
	}
}

void isoCmdTab::EnableOneDirControl(bool bEnable)
{
	m_dataSize.EnableWindow(bEnable);
	m_hexByte.EnableWindow(bEnable);
}

void isoCmdTab::processStoped()
{
	m_buttonGo.EnableWindow(TRUE);
	m_buttonDet.EnableWindow(TRUE);
	m_pipesList.EnableWindow(TRUE);
	m_progressBar.SetPos(0);
	isUnderTest = FALSE;
}
/////////////////////////////////////////////////////////////////////////////
// isoCmdTab message handlers

void isoCmdTab::OnButtonBrowse() 
{
	CString m_cstrFileName;

	CFileDialog dlg( TRUE,_T("All"),_T("*.*"),
					 OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
					 _T("All Files (*.*)|") );

	if( dlg.DoModal()==IDOK )
	{
		m_cstrFileName = dlg.GetPathName();
		UpdateData(FALSE);
		//ApplyChanges();
	}

	m_fileName.SetWindowText(m_cstrFileName);
	
}

void isoCmdTab::OnSelchangeListIsoPipes() 
{
	int num;
	CArray<int,int> selectedItems;
	USBDriver *curUSBDriver = USBDriver::GetUSBDriver();

	num = m_pipesList.GetSelCount();

	selectedItems.SetSize(num);
	
	m_pipesList.GetSelItems(num,selectedItems.GetData());

	if (num == 1)
	{
		selPipe = selectedItems.GetAt(0);
		EnableLoopbackControl(FALSE);
		EnableOneDirControl(TRUE);
	}
	
	if (num == 2)
	{
		selPipe = -1; /* Loopback test */
		EnableOneDirControl(FALSE);
		EnableLoopbackControl(TRUE);
	}

	m_buttonGo.EnableWindow(TRUE);
	m_buttonDet.EnableWindow(FALSE);
/*	if (curUSBDriver->IsDMAinUSE())
		m_dmaUse.EnableWindow(FALSE);
	else
		m_dmaUse.EnableWindow(TRUE); */
}

void isoCmdTab::OnButtonIsoGo() 
{
	if (!isUnderTest)
	{
		int pipeForDMA = 0 ; //m_dmaUse.GetCurSel();
		if (selPipe == -1)
		{ /* loopback test */
			int dataSize;
			int chunkNum;

			if (m_fileRadio.GetCheck())
			{
				CString fileName;
				CFileFind finder;
				m_fileName.GetWindowText(fileName);
				fileName.TrimLeft();
				fileName.TrimRight();

				if (fileName.IsEmpty())
				{
					MessageBox("Input data file is not specified.","Error",MB_ICONERROR | MB_OK);
					return;
				}
				if (!finder.FindFile(fileName)) 
				{
					/* file not found */
					MessageBox("Data file does not exist.","Error",MB_ICONERROR | MB_OK);
					return;
				}

				finder.FindNextFile();
				dataSize = finder.GetLength();
				
				if (( dataSize > (SIZE_LIM_ONE_DIR_TEST/2))||(dataSize < 1))
				{
					/* file too big */
					MessageBox("Data file size must be between 1 Byte and 10 MBytes.","Error",MB_ICONERROR | MB_OK);
					return;
				}
				
				chunkNum = dataSize/DATA_CHUNK_SIZE;
				if (dataSize%DATA_CHUNK_SIZE)
					chunkNum++;
				m_progressBar.SetRange(0,chunkNum);
				m_progressBar.SetPos(0);
				
				if (!isoFunc->ProcessLoopTestFile(fileName,pipeForDMA))
				{	
					return;
				}
			}
			else
			{
				CString dataSizeStr;

				m_loopSize.GetWindowText(dataSizeStr);
				if (dataSizeStr.IsEmpty())
				{
					MessageBox("Data size is not specified.","Error",MB_ICONERROR | MB_OK);
					return;
				}

				sscanf(dataSizeStr.GetBuffer(dataSizeStr.GetLength()),"%d",&dataSize);

				if ((dataSize > (SIZE_LIM_ONE_DIR_TEST/2))||(dataSize < 1))
				{/* file too big */
					MessageBox("Data size must be an integer between 1 Byte and 10 MBytes.","Error",MB_ICONERROR | MB_OK);
					return;
				}				
				chunkNum = dataSize/DATA_CHUNK_SIZE;
				if (dataSize%DATA_CHUNK_SIZE)
					chunkNum++;
				m_progressBar.SetRange(0,chunkNum);
				m_progressBar.SetPos(0);
				
				if (!isoFunc->ProcessLoopTestData(dataSize,pipeForDMA))
				{	
					return;
				}
			}

		}
		else
		{
			/* one direction test */
			CString dataSizeStr;
			CString byteStr;
			int dataSize;
			int byte;
			int chunkNum;

//			bool DMAuse = (selPipe == pipeForDMA);

			m_dataSize.GetWindowText(dataSizeStr);
			if (dataSizeStr.IsEmpty())
			{
				MessageBox("Data size is not specified.","Error",MB_ICONERROR | MB_OK);
				return;
			}

			m_hexByte.GetWindowText(byteStr);
			if (byteStr.IsEmpty())
			{
				MessageBox("Hex byte is not specified.","Error",MB_ICONERROR | MB_OK);
				return;
			}

			sscanf(dataSizeStr.GetBuffer(dataSizeStr.GetLength()),"%d",&dataSize);


			if ((dataSize > SIZE_LIM_ONE_DIR_TEST)||(dataSize < 1))
			{
			/* size too big */
				MessageBox("Data size must be an integer between 1 Byte and 20 MBytes.","Error",MB_ICONERROR | MB_OK);
				return;
			}

			byteStr.MakeLower();
		
			int i =0;
			for (i = 0; i < byteStr.GetLength(); i++)
				if ((((CString)byteStr[i] < "a")||((CString)byteStr[i] > "f"))&&(((CString)byteStr[i] < "0")||((CString)byteStr[i] > "9")))
				{
					MessageBox("Hex byte must be an integer between 0 and FF","Error",MB_ICONERROR | MB_OK);
					return;
				}

			sscanf(byteStr.GetBuffer(byteStr.GetLength()),"%x",&byte);

			chunkNum = dataSize/DATA_CHUNK_SIZE;
			if (dataSize%DATA_CHUNK_SIZE)
				chunkNum++;

			m_progressBar.SetRange(0,chunkNum);
			m_progressBar.SetPos(0);

			if (!isoFunc->ProcessOneDirTest(selPipe,dataSize,byte,FALSE))
			{	
					return;
			}
		}
		
		m_progressBar.SetPos(0);
//		m_buttonGo.SetWindowText("Stop");
		m_buttonGo.EnableWindow(FALSE);
		m_buttonDet.EnableWindow(FALSE);
		m_pipesList.EnableWindow(FALSE);
		isUnderTest = TRUE;

	}
	else
	{
		/* stop test */
		isoFunc->StopLastProcess();
		m_buttonGo.SetWindowText("GO !");
		m_buttonDet.EnableWindow(TRUE);
		isUnderTest = FALSE;
	}

	
}

void isoCmdTab::OnButtonIsoDet() 
{
	MessageBox((LPCTSTR)isoFunc->GetDetails(),"Isochronous Test",MB_ICONINFORMATION | MB_OK);	
}

void isoCmdTab::OnFileRadio() 
{
	m_loopSize.EnableWindow(FALSE);
	m_fileName.EnableWindow(TRUE);
	m_buttonBrowse.EnableWindow(TRUE);	
}

void isoCmdTab::OnIncrRadio() 
{
	m_fileName.EnableWindow(FALSE);
	m_buttonBrowse.EnableWindow(FALSE);	
	m_loopSize.EnableWindow(TRUE);	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久福利资源站| 欧美吞精做爰啪啪高潮| 日本久久一区二区| 精品日韩一区二区| 亚洲成av人片在线观看| 国产成人在线网站| 日韩精品在线网站| 视频在线观看国产精品| 99re在线精品| 中文字幕第一页久久| 国内精品视频一区二区三区八戒| 色88888久久久久久影院野外| 国产欧美一区二区在线观看| 婷婷一区二区三区| 91精彩视频在线观看| 国产精品乱码一区二区三区软件| 美国三级日本三级久久99| 欧美日韩国产三级| 亚洲免费毛片网站| 色综合天天综合| 中文字幕在线一区二区三区| 国产一区三区三区| 精品免费视频.| 乱中年女人伦av一区二区| 911精品国产一区二区在线| 一区二区三区国产豹纹内裤在线| 99久久精品国产网站| 国产精品久久久久久妇女6080| 国产在线精品免费av| 日韩精品最新网址| 久久国产三级精品| 精品国产乱码久久久久久浪潮| 久久精品久久精品| 日韩精品一区二区三区swag| 蜜臀久久99精品久久久久宅男 | 亚洲激情av在线| 99精品国产一区二区三区不卡| 国产精品伦一区| 成人精品视频一区二区三区| 国产欧美1区2区3区| 福利一区二区在线观看| 国产精品理论片| 色综合久久六月婷婷中文字幕| 中文字幕一区二区三区四区 | 亚洲成人免费看| 欧美巨大另类极品videosbest| 天天影视色香欲综合网老头| 欧美一区二区三区在线看| 精品一区二区日韩| 国产欧美综合色| 99国产欧美另类久久久精品| 亚洲综合999| 91精品国产色综合久久不卡电影| 久久精品国产一区二区三 | 一区二区欧美精品| 精品国产一区二区三区久久久蜜月| 丝袜美腿亚洲一区| 精品久久久久久久一区二区蜜臀| 国产乱码精品一区二区三区忘忧草| 国产亚洲美州欧州综合国 | 成人综合日日夜夜| 亚洲免费观看高清完整版在线| 欧美日韩一区高清| 精品一区二区三区在线播放视频| 欧美国产一区二区| 欧美午夜精品理论片a级按摩| 日本在线不卡视频| 国产亚洲一区二区三区在线观看 | 亚洲制服欧美中文字幕中文字幕| 宅男噜噜噜66一区二区66| 国产黑丝在线一区二区三区| 一级精品视频在线观看宜春院| 日韩一区二区三免费高清| 成人成人成人在线视频| 天堂久久一区二区三区| 国产精品五月天| 6080日韩午夜伦伦午夜伦| 成人黄色小视频| 免费成人结看片| 亚洲一区二区三区四区在线| 国产欧美日韩在线视频| 91精品国产综合久久久蜜臀图片| 91视频在线看| 国产乱理伦片在线观看夜一区 | 亚洲精品日韩综合观看成人91| 欧美一级理论片| 色综合一区二区| 成人中文字幕合集| 美女国产一区二区三区| 亚洲综合视频在线| 国产精品欧美久久久久一区二区 | 欧美三级电影精品| 成+人+亚洲+综合天堂| 精品在线一区二区三区| 亚洲午夜电影在线观看| 亚洲色图都市小说| 国产精品视频九色porn| 欧美精品一区二| 91精品国产福利在线观看| 欧美三级欧美一级| 色婷婷综合视频在线观看| 国产精品18久久久久久久久| 视频一区二区欧美| 亚洲午夜激情av| 亚洲成人在线免费| 丝瓜av网站精品一区二区| 一区二区三区**美女毛片| 亚洲精品久久久蜜桃| 亚洲四区在线观看| 亚洲欧美另类久久久精品| 亚洲欧美自拍偷拍| 国产精品久久久久影院色老大| 国产精品无码永久免费888| 国产精品入口麻豆九色| 欧美激情一区不卡| 国产精品久久久久久久久图文区 | 卡一卡二国产精品| 六月丁香综合在线视频| jiyouzz国产精品久久| 国产乱人伦精品一区二区在线观看| 国产一区二区在线影院| 国内精品第一页| 国产乱人伦精品一区二区在线观看| 国产精品中文字幕一区二区三区| 久久成人免费网| 国产不卡免费视频| 99视频在线精品| 欧美综合久久久| 欧美一级高清片在线观看| 日韩精品最新网址| 欧美国产日本视频| 樱桃视频在线观看一区| 亚洲午夜精品网| 精品亚洲国产成人av制服丝袜 | 欧美日韩中文国产| 欧美一区二区三区四区久久| 久久嫩草精品久久久精品| 国产精品久久久久永久免费观看| 亚洲精品综合在线| 日韩电影在线一区二区| 国产一区二区调教| 色菇凉天天综合网| 欧美精品少妇一区二区三区| 欧美成人a视频| 国产精品久久久久久久久免费桃花| 一区二区三区在线视频免费| 午夜电影一区二区| 国产精品自在欧美一区| 色天天综合久久久久综合片| 51午夜精品国产| 国产精品久久久久久久久久久免费看 | 91麻豆精品在线观看| 7777精品伊人久久久大香线蕉最新版| 精品免费日韩av| 亚洲男女一区二区三区| 久久精品噜噜噜成人av农村| 91网站在线播放| 精品日韩在线观看| 亚洲一线二线三线视频| 国产麻豆成人精品| 在线观看国产91| 2021国产精品久久精品| 亚洲一区二区不卡免费| 国产精品一区二区三区网站| 欧美午夜片在线看| 国产免费成人在线视频| 日韩av一区二区三区四区| 丁香天五香天堂综合| 日韩一二三区视频| 亚洲精品免费在线观看| 国产精品自拍av| 在线播放视频一区| 亚洲精品国产a| 国产成人一区在线| 日韩美女视频一区二区在线观看| 狠狠网亚洲精品| 欧美美女网站色| 亚洲黄网站在线观看| 99re热视频精品| 国产日韩欧美高清在线| 精品亚洲porn| 日韩一级二级三级精品视频| 午夜久久久久久久久| 色综合久久久久网| 亚洲欧美日韩系列| 97国产精品videossex| 国产精品不卡在线| a在线欧美一区| 国产性色一区二区| 韩国v欧美v亚洲v日本v| 日韩女优av电影在线观看| 三级亚洲高清视频| 欧美日本在线视频| 日韩不卡免费视频| 日韩欧美国产麻豆| 奇米777欧美一区二区| 91精品一区二区三区在线观看| 亚洲午夜激情av| 91精品国产综合久久久蜜臀粉嫩| 午夜视频在线观看一区二区三区|