📄 ultrasonicview.cpp
字号:
a = dlg.GetPathName();
}
m_path=a;
UpdateData(FALSE);
/////////////写入各通道对应数组////////////////////
fstream file1;
char ch1,ch2,ch3,ch4;
if(a=="") AfxMessageBox("请先选择数据文件!");
else
{
file1.open(a,ios::in);
file1.read(&ch1,1);
file1.read(&ch2,1);
file1.read(&ch3,1);
file1.read(&ch4,1); //ch4为空格
m_kk1=(ch1-48)*100+(ch2-48)*10+ch3-48;
file1.read(&ch1,1);
file1.read(&ch2,1);
file1.read(&ch3,1);
file1.read(&ch4,1); //ch4为空格
m_kk2=(ch1-48)*100+(ch2-48)*10+ch3-48;
file1.read(&ch1,1);
file1.read(&ch2,1);
file1.read(&ch3,1);
file1.read(&ch4,1); //ch4为空格
m_kk3=(ch1-48)*100+(ch2-48)*10+ch3-48;
file1.read(&ch1,1);
file1.read(&ch2,1);
file1.read(&ch3,1);
file1.read(&ch4,1); //ch4为空格
m_kk4=(ch1-48)*100+(ch2-48)*10+ch3-48;
file1.read(&ch1,1);
file1.read(&ch2,1);
file1.read(&ch3,1);
file1.read(&ch4,1); //ch4为空格
m_kk5=(ch1-48)*100+(ch2-48)*10+ch3-48;
file1.read(&ch1,1);
file1.read(&ch2,1);
file1.read(&ch3,1);
file1.read(&ch4,1); //ch4为空格
m_kk6=(ch1-48)*100+(ch2-48)*10+ch3-48;
file1.read(&ch1,1);
file1.read(&ch2,1);
file1.read(&ch3,1);
file1.read(&ch4,1); //ch4为空格
m_kk7=(ch1-48)*100+(ch2-48)*10+ch3-48;
file1.read(&ch1,1);
file1.read(&ch2,1);
file1.read(&ch3,1);
file1.read(&ch4,1); //ch4为空格
m_kk8=(ch1-48)*100+(ch2-48)*10+ch3-48;
file1.read(&ch1,1);
file1.read(&ch2,1);
file1.read(&ch3,1);
file1.read(&ch4,1); //ch4为空格
m_kk9=(ch1-48)*100+(ch2-48)*10+ch3-48;
UpdateData(FALSE);
}
file1.close();
inputpara dlg3;
UpdateData(FALSE);
dlg3.m_k1=m_kk1;
dlg3.m_k2=m_kk2;
dlg3.m_k3=m_kk3;
dlg3.m_k4=m_kk4;
dlg3.m_k5=m_kk5;
dlg3.m_k6=m_kk6;
dlg3.m_k7=m_kk7;
dlg3.m_k8=m_kk8;
dlg3.m_k9=m_kk9;
if (dlg3.DoModal()==IDOK)
{
CRect rc(45,260,845,516);
InvalidateRect(rc);
UpdateData(FALSE);
}
}
void CUltrasonicView::OnBUTTONreceive()
{
// 清空接收区
/* for(int i=0;i<9;i++) {rxnum[i]=0;rxoldnum[i]=0;}
m_Progress.SetPos(0);
Allnum=0;
numx=0;
*rxnum=0;
*rxoldnum=0;
m_strRXData="";
numx=0;
channelnum=0;
m_chnow="";
m_strRXData = _T("");
m_strTXData = _T(""); */
CUltrasonicDoc* pDoc=GetDocument();
if(IsCH1==true) channel=0;
if(IsCH2==true) channel=1;
if(IsCH3==true) channel=2;
if(IsCH4==true) channel=3;
if(IsCH5==true) channel=4;
if(IsCH6==true) channel=5;
if(IsCH7==true) channel=6;
if(IsCH8==true) channel=7;
if(IsCH9==true) channel=8;
CRect rc(1,260,935,516);//45,845
InvalidateRect(rc);
CByteArray hexdata;
if(IsCH1==true)
{ m_strTXData="01";
String2Hex(m_strTXData,hexdata);
m_ctrlComm.SetOutput(COleVariant(hexdata));} //发送十六进制数据}
if(IsCH2==true) {m_strTXData="02";
String2Hex(m_strTXData,hexdata);
m_ctrlComm.SetOutput(COleVariant(hexdata));}
if(IsCH3==true) {m_strTXData="03";
String2Hex(m_strTXData,hexdata);
m_ctrlComm.SetOutput(COleVariant(hexdata));}
if(IsCH4==true) {m_strTXData="04";
String2Hex(m_strTXData,hexdata);
m_ctrlComm.SetOutput(COleVariant(hexdata));}
if(IsCH5==true) {m_strTXData="05";
String2Hex(m_strTXData,hexdata);
m_ctrlComm.SetOutput(COleVariant(hexdata));}
if(IsCH6==true) {m_strTXData="06";
String2Hex(m_strTXData,hexdata);
m_ctrlComm.SetOutput(COleVariant(hexdata));}
if(IsCH7==true) {m_strTXData="07";
String2Hex(m_strTXData,hexdata);
m_ctrlComm.SetOutput(COleVariant(hexdata));}
if(IsCH8==true) {m_strTXData="08";
String2Hex(m_strTXData,hexdata);
m_ctrlComm.SetOutput(COleVariant(hexdata));}
if(IsCH9==true) {m_strTXData="09";
String2Hex(m_strTXData,hexdata);
m_ctrlComm.SetOutput(COleVariant(hexdata));}
}
void CUltrasonicView::OnmAc6111Format()
{
int i,j,l,k,m,le;
int cha,dat;
char g[1];
int hdata[8][12288];
CFileException e;
for(i=0;i<8;i++)
for(j=0;j<12288;j++)
hdata[i][j]=2048;
/////////////打开历史数据文件////////////////////
LPCTSTR lpszFilter="文本文件(*.dat)|*.dat|任何文件|*.*||";
CFileDialog dlg(TRUE,lpszFilter,NULL, OFN_ALLOWMULTISELECT| OFN_OVERWRITEPROMPT,lpszFilter,NULL);//OFN_HIDEREADONLY
CString a,dao,ban,strtemp;
CStringArray filename;
POSITION pos;
CFile file1;
if(dlg.DoModal() == IDOK)
{
pos=dlg.GetStartPosition( );//a = dlg.GetPathName() ;
}
while(pos!=NULL)
filename.Add(dlg.GetNextPathName(pos));
m=filename.GetSize();
for(k=0;k<m;k++)
{
a = filename[k];
dao=a.GetAt(a.Find("道")+2);
cha=atoi(dao)-1;
if( !file1.Open(a, CFile::modeRead | CFile::typeBinary , &e ) )
{
#ifdef _DEBUG
afxDump << "File could not be opened " << e.m_cause << "\n";
#endif
}
l=0;
le=file1.GetLength();
while(l<=le/2)
{
file1.Read(&dat,2);
hdata[cha][l]=dat;
l++;
}
file1.Close();
}
itoa(m,g,10);
a=a.Left(a.GetLength()-10)+g+"个通道.dat";
file1.Open(a,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);
for(j=0;j<12288;j++)
for(i=0;i<8;i++)
{dat=hdata[i][j];file1.Write(&dat,2);}
file1.Close();
CString b;
if(a.Find("板1")>=5) b="新板1参数.txt";
else
if(a.Find("板2")>=5) b="新板2参数.txt";
else
if(a.Find("板3")>=5) b="新板3参数.txt";
else
if(a.Find("板4")>=5) b="新板4参数.txt";
else
{AfxMessageBox("文件名没包含板号信息,无法显示!"); return;}
fstream file2;
char cha1,cha2,cha3,cha4;
if(b=="") AfxMessageBox("请先选择板号文件!");
else
{
b=CurrentDirectory+"\\"+b;
file2.open(b,ios::in);
file2.read(&cha1,1);
file2.read(&cha2,1);
file2.read(&cha3,1);
file2.read(&cha4,1); //cha4为空格
m_kk1=(cha1-48)*100+(cha2-48)*10+cha3-48;
file2.read(&cha1,1);
file2.read(&cha2,1);
file2.read(&cha3,1);
file2.read(&cha4,1); //cha4为空格
m_kk2=(cha1-48)*100+(cha2-48)*10+cha3-48;
file2.read(&cha1,1);
file2.read(&cha2,1);
file2.read(&cha3,1);
file2.read(&cha4,1); //cha4为空格
m_kk3=(cha1-48)*100+(cha2-48)*10+cha3-48;
file2.read(&cha1,1);
file2.read(&cha2,1);
file2.read(&cha3,1);
file2.read(&cha4,1); //cha4为空格
m_kk4=(cha1-48)*100+(cha2-48)*10+cha3-48;
file2.read(&cha1,1);
file2.read(&cha2,1);
file2.read(&cha3,1);
file2.read(&cha4,1); //cha4为空格
m_kk5=(cha1-48)*100+(cha2-48)*10+cha3-48;
file2.read(&cha1,1);
file2.read(&cha2,1);
file2.read(&cha3,1);
file2.read(&cha4,1); //cha4为空格
m_kk6=(cha1-48)*100+(cha2-48)*10+cha3-48;
file2.read(&cha1,1);
file2.read(&cha2,1);
file2.read(&cha3,1);
file2.read(&cha4,1); //cha4为空格
m_kk7=(cha1-48)*100+(cha2-48)*10+cha3-48;
file2.read(&cha1,1);
file2.read(&cha2,1);
file2.read(&cha3,1);
file2.read(&cha4,1); //cha4为空格
m_kk8=(cha1-48)*100+(cha2-48)*10+cha3-48;
UpdateData(FALSE);
}
file2.close();
a=a.Left(a.GetLength()-4)+".inf";
if( !file1.Open(a, CFile::modeCreate | CFile::modeWrite, &e ) )
{
#ifdef _DEBUG
afxDump << "File could not be opened " << e.m_cause << "\n";
#endif
}
ban=a.GetAt(a.Find("板")+2);
file1.Write(ban,1);
file1.Write("\r\n",2);
file1.Write("0",1);file1.Write(" ",1);file1.Write("7",1);file1.Write(" ",1);
file1.Write("5000 ",4);file1.Write(" ",1);file1.Write("3",1);file1.Write("\r\n",2);
file1.Write("0",1);file1.Write(" ",1);file1.Write("1",1);file1.Write(" ",1);file1.Write("0.0 ",3);file1.Write("\r\n",2);
file1.Write("3362380937.171 ",14);file1.Write("\r\n",2);
int fd=150*10*100*1000/(2048*m_kk1);
strtemp.Format("%3d ",fd);
const char* chi=(const char*)strtemp;
file1.Write(chi,3);file1.Write(" ",1);file1.Write("150.0",5);file1.Write("\r\n",2);
fd=150*10*100*1000/(2048*m_kk2);
strtemp.Format("%3d ",fd);
chi=(const char*)strtemp;
file1.Write(chi,3);file1.Write(" ",1);file1.Write("150.0",5);file1.Write("\r\n",2);
fd=150*10*100*1000/(2048*m_kk3);
strtemp.Format("%3d ",fd);
chi=(const char*)strtemp;
file1.Write(chi,3);file1.Write(" ",1);file1.Write("150.0",5);file1.Write("\r\n",2);
fd=150*10*100*1000/(2048*m_kk4);
strtemp.Format("%3d ",fd);
chi=(const char*)strtemp;
file1.Write(chi,3);file1.Write(" ",1);file1.Write("150.0",5);file1.Write("\r\n",2);
fd=150*10*100*1000/(2048*m_kk5);
strtemp.Format("%3d ",fd);
chi=(const char*)strtemp;
file1.Write(chi,3);file1.Write(" ",1);file1.Write("150.0",5);file1.Write("\r\n",2);
fd=150*10*100*1000/(2048*m_kk6);
strtemp.Format("%3d ",fd);
chi=(const char*)strtemp;
file1.Write(chi,3);file1.Write(" ",1);file1.Write("150.0",5);file1.Write("\r\n",2);
fd=150*10*100*1000/(2048*m_kk7);
strtemp.Format("%3d ",fd);
chi=(const char*)strtemp;
file1.Write(chi,3);file1.Write(" ",1);file1.Write("150.0",5);file1.Write("\r\n",2);
fd=150*10*100*1000/(2048*m_kk8);
strtemp.Format("%3d ",fd);
chi=(const char*)strtemp;
file1.Write(chi,3);file1.Write(" ",1);file1.Write("150.0",5);file1.Write("\r\n",2);
file1.Close();
}
void CUltrasonicView::OnResultSave()
{
// SetCurrentDirectory("实验数据");
// SetCurrentDirectory(strDate+"数据");
CString a,b,c,d;
/////////////写入各通道对应数组////////////////////
// fstream file1,file2;
CFileException e;
CFile file1,file2,file3,file4;
int i;
CString strtemp,strtemp1,ban,dao;
float ii;
int nl;
nl=xzhou;
if(m_realorhis==0)//实时
{
a=strf+"_"+m_chnow+".txt_tec";
d=strf+"_"+m_chnow+".txt_tec1";
if(channel!=8)
{
b=a.Left(a.GetLength()-8)+".inf";
c=a.Left(a.GetLength()-8)+".dat";
ban=b.GetAt(b.Find("板")+2);
dao=b.GetAt(b.Find("道")+2);
char daoc[2];
int da=atoi(dao);itoa(da-1,daoc,2);
dao=daoc[0];
if( !file2.Open(b, CFile::modeCreate | CFile::modeWrite, &e ) )
{
#ifdef _DEBUG
afxDump << "File could not be opened " << e.m_cause << "\n";
#endif
}
file2.Write(ban,1);
file2.Write("\r\n",2);
file2.Write(dao,1);file2.Write(" ",1);file2.Write(dao,1);file2.Write(" ",1);
file2.Write("5000 ",4);file2.Write(" ",1);file2.Write("3",1);file2.Write("\r\n",2);
file2.Write(dao,1);file2.Write(" ",1);file2.Write(dao,1);file2.Write(" ",1);file2.Write("0.0 ",3);file2.Write("\r\n",2);
file2.Write("3362380937.171 ",14);file2.Write("\r\n",2);
int fd=150*10*100*1000/(2048*m_k);
strtemp.Format("%3d ",fd);
const char* chi=(const char*)strtemp;
file2.Write(chi,3);file2.Write(" ",1);file2.Write("150.0",5);
file2.Close();
}
if(a=="") AfxMessageBox("请先选择数据文件!");
else
{ file4.Open(d, CFile::modeCreate | CFile::modeWrite, &e );
if( !file1.Open(a, CFile::modeCreate | CFile::modeWrite, &e ) )
{
#ifdef _DEBUG
afxDump << "File could not be opened " << e.m_cause << "\n";
#endif
}
if(channel!=8) file3.Open(c,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);
for (i=0;i<=rxnum[channel]/2-1;i++)
{
strtemp.Format("%5d ",i); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
const char* chi=(const char*)strtemp;
ii=i/5.0-332.0;
strtemp1.Format("%6.1f ",ii); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
const char* chii=(const char*)strtemp1;
file1.Write(chi,5);
file1.Write(",",1);
file4.Write(chii,6);
file4.Write(",",1);
intialpara();
if(channel!=8)
strtemp.Format("%6.1f",(RxDatab[channel][12287-i]-RxDatab[channel][12287])*m_k); //单位为帕
else
strtemp.Format("%6.1f",RxDatab[channel][1022-i]*m_k);
const char* ch=(const char*)strtemp;
file1.Write(ch,6);//存放至文件
file1.Write("\r\n",2);
file4.Write(ch,6);//存放至文件
file4.Write("\r\n",2);
int dat=(RxDatab[channel][12287-i]-RxDatab[channel][12287])+2047;
if(channel!=8) file3.Write(&dat,2);
}
UpdateData(FALSE);
}
file1.Close();file4.Close(); if(channel!=8) file3.Close();
}
else
{
a=m_path+"_tec";//历史数据
d=m_path+"_tec1";
if(channel!=8)
{
b=m_path.Left(m_path.GetLength()-4)+".inf";
c=m_path.Left(m_path.GetLength()-4)+".dat";
ban=b.GetAt(b.Find("板")+2);
dao=b.GetAt(b.Find("道")+2);
char daoc[2];
int da=atoi(dao);
da=da-1;
_itoa(da,daoc,2);
dao=daoc[0];
if( !file2.Open(b, CFile::modeCreate | CFile::modeWrite, &e ) )
{
#ifdef _DEBUG
afxDump << "File could
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -