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

📄 ultrasonicview.cpp

📁 接收来自下位机的数据,然后进行数据处理和通讯
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	
		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 + -