OnBnClickedWrite()
{
// TODO: Add your control notification handler code here
try
{
CString pathName;
WCHAR szFilters[]=
_T("Hex Files (*.hex)|*.hex|All Files (*.*)|*.*||");
CFileDialog fileDlg (TRUE, _T("my"), _T("*.hex"),
OFN_FILEMUSTEXIST| OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT, szFilters, this);
if( fileDlg.DoModal ()!=IDOK )
{
return ;
}
HANDLE pDev = NULL;
int outLength;
BYTE *outBuffer=NULL;
outBuffer =(BYTE*) malloc(262144);
CFile f;
POSITION pos;
int fileNum = 0;
int a = 0;
for (pos = fileDlg.GetStartPosition(); pos; )
{
fileNum++;
pathName = fileDlg.GetNextPathName(pos);
f.Open(pathName,CFile::bufferRead|CFile::modeRead,0);
if (outBuffer)
{
outLength = f.GetLength();
f.Read(outBuffer, outLength);
}
else
{
return ;
}
f.Close();
char output[256];
a = LoadToDdr(&pDev ,outLength,outBuffer);
}
char output[256];
sprintf( output,"测试成功!/r/n共发送%03d字节", a*512*fileNum);
m_strTestDisplay=output;
free(outBuffer);
CloseHandle(pDev);
UpdateData(false);
}
catch(...)
{
//DISPLAY E
MessageBox(_T("error!"));
}
}
//
OnBnClickedRead()
{
// TODO: Add your control notification handler code here
try
{
HANDLE pDev = NULL;
BYTE *inBuffer=NULL;
char temp[256];
inBuffer = (BYTE*)malloc(1536);
char output[256];
int a = ReadFromDdr2(&pDev ,startReAdd,
1536,inBuffer);
startReAdd += 192;
//DISPLAY A
sprintf( output,"测试成功!/r/n共接收了%03d字节/r/n", a );
m_strTestDisplay=output;
sprintf(output,"");
for (int i=0;i<1536;i++)
{
sprintf(temp,"%02X ",inBuffer[i]);
strcat(output,temp);
m_strTestDisplay+=output;
sprintf(output,"");
if((i+1)%32==0 && i!=0) {
m_strTestDisplay+="/r/n";
if(i%1536==0 && i!=0) UpdateData(FALSE);
}
}
m_strTestDisplay+="/r/n";
free(inBuffer);
CloseHandle(pDev);
UpdateData(false);
}
catch(...)
{
//DISPLAY E
MessageBox(_T("error!"));
}
}
//
OnBnClickedReadToFile()
{
// TODO: Add your control notification handler code here
try
{
HANDLE pDev = NULL;
BYTE *inBuffer = NULL;
char temp[256];
int readLength = 0;
UpdateData(TRUE);
std::wstring str(m_strReadLength.GetBuffer());
readLength = boost::lexical_cast<int,std::wstring>(str);
inBuffer = (BYTE*)malloc(readLength);
int sentCount = readLength / 1536;
int i = 0;
CString pathName;
WCHAR szFilters[]=
_T("Hex Files (*.hex)|*.hex|All Files (*.*)|*.*||");
CFileDialog fileDlg (FALSE, _T("my"), _T("*.hex"),
OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);
if( fileDlg.DoModal ()==IDOK )
{
pathName = fileDlg.GetPathName();
CString fileName = fileDlg.GetFileTitle ();
SetWindowText(fileName);
}
else
{
return ;
}
CFile f;
f.Open(pathName,CFile::modeReadWrite|CFile::modeCreate,0);
f.Close();
char output[256];
for (i = 0; i < sentCount; i++)
{
int a = ReadFromDdr2(&pDev ,startReAdd,
1536,inBuffer);
startReAdd += 192;
f.Open(pathName,CFile::modeReadWrite|CFile::shareExclusive,0);
if (inBuffer)
{
f.SeekToEnd();
f.Write(inBuffer, 1536);
}
else
{
return ;
}
f.Close();
}
sprintf( output,"测试成功!/r/n共接收了%03d字节/r/n", 1536*i );
m_strTestDisplay=output;
free(inBuffer);
CloseHandle(pDev);
UpdateData(false);
}
catch(...)
{
//DISPLAY E
MessageBox(_T("error!"));
}
}
//
OnBnClickedWriteByAdd()
{
// TODO: Add your control notification handler code here
try
{
UpdateData(TRUE);
std::wstring strAdd(m_strWriteAdd.GetBuffer());
startWrAdd = boost::lexical_cast<unsigned,std::wstring>(strAdd);
CString pathName;
WCHAR szFilters[]=
_T("Hex Files (*.hex)|*.hex|All Files (*.*)|*.*||");
CFileDialog fileDlg (TRUE, _T("my"), _T("*.hex"),
OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);
if( fileDlg.DoModal ()==IDOK )
{
pathName = fileDlg.GetPathName();
CString fileName = fileDlg.GetFileTitle ();
SetWindowText(fileName);
}
else
{
return ;
}
HANDLE pDev = NULL;
int outLength;
BYTE *outBuffer=NULL;
outBuffer =(BYTE*) malloc(276480);
CFile f;
f.Open(pathName,CFile::bufferRead|CFile::modeRead,0);
if (outBuffer)
{
outLength = f.GetLength();
f.Read(outBuffer, outLength);
}
else
{
return ;
}
f.Close();
char output[256];
int a = LoadToDdr2(&pDev ,startWrAdd,
outLength,outBuffer);
startWrAdd += outLength/8;
//DISPLAY A
sprintf( output,"测试成功!/r/n共发送%03d字节", a*512);
m_strTestDisplay=output;
free(outBuffer);
CloseHandle(pDev);
UpdateData(false);
}
catch (CMemoryException* e)
{
MessageBox(_T("CMemoryException!"));
}
catch (CFileException* e)
{
MessageBox(_T("CFileException!"));
}
catch (CException* e)
{
MessageBox(_T("CException!"));
}
catch(...)
{
//DISPLAY E
MessageBox(_T("error!"));
}
}