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

📄 cartestdlg.cpp

📁 此源码为汽车数据采集分析系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		dc->MoveTo(i,330-left);
		dc->LineTo(i+2,330-powerset.m_left2);

        dc->SelectObject (&pen2);
		dc->MoveTo(i,330-right);
		dc->LineTo(i+2,330-powerset.m_right2);
		var1.Format ("%f",powerset.m_left2);
		var2.Format ("%f",powerset.m_right2);
       	mdc->TextOut(20,20,var1);
        mdc0->TextOut(20,20,var2);
		left=powerset.m_left2;
		right=powerset.m_right2;
        	::Sleep(50);
	
		i+=2;
	    leftpower[k]=left;
		rightpower[k]=right;
		arrar[k]=left-right;

			k++;
          
	

			powerset.MoveNext();
	
	
	}while(!powerset.IsEOF());
	powerset.Close();
    int c,flag=0;
	float leftmax=0,rightmax=0,arrarmax=0,leftmm=0,rightmm=0,temp=0,leftzu=0,rightzu=0 ;
for(c=1;c<170;c++)
	{
		if(leftpower[c-1]<leftpower[c])
	              leftmax=leftpower[c];
			else
			{
              temp=leftpower[c-1];
				  leftpower[c-1]=leftpower[c];
				  leftpower[c]=temp;
              leftmax=leftpower[c];
			}
		if(rightpower[c-1]<rightpower[c])
			rightmax=rightpower[c];
		else 
		{
			temp=rightpower[c-1];
			rightpower[c-1]=rightpower[c];
			rightpower[c]=temp;
			rightmax=rightpower[c];
		}
	    if(arrar[c-1]<arrar[c])
		{arrarmax=arrar[c];
		flag=c;}
			else
		{
			temp=arrar[c-1];
			arrar[c-1]=arrar[c];
			arrar[c]=temp;
			arrarmax=arrar[c];
			
		}
	}
	leftmm=leftpower[flag];
	rightmm=rightpower[flag];
	leftzu=arrarmax/leftmax;
	rightzu=arrarmax/rightmax;
	//////////////////算不平衡率
	CString t1,t2;
	t1.Format ("%f",100*arrarmax/rightmax);
	t2.Format ("%f",100*arrarmax/leftmax);
	 str1.Format ("%f",leftmax);
		  str2.Format("%f",rightmax);
		   str3.Format ("%f",leftmm);
		  str4.Format("%f",rightmm);
		  str5.Format ("%f",100*leftzu);
		  str6.Format ("%f",100*rightzu);
		  if(fbflag==1)
		  {
	if(leftmax<rightmax)
		m_list.SetItemText (0,7,t1);
	else
		m_list.SetItemText (0,7,t2);      
	m_list.SetItemText(0,2,str1);
	m_list.SetItemText(0,3,str2);
    m_list.SetItemText(0,4,str3);
    m_list.SetItemText(0,5,str4);
	m_list.SetItemText (0,8,str5);
	m_list.SetItemText(0,9,str6);
		  }
		  else
		  {
	if(leftmax<rightmax)
		m_list.SetItemText (1,7,t1);
	else
	    m_list.SetItemText (1,7,t2);    
	m_list.SetItemText(1,2,str1);
	m_list.SetItemText(1,3,str2);
    m_list.SetItemText(1,4,str3);
    m_list.SetItemText(1,5,str4);
	m_list.SetItemText (1,8,str5);
	m_list.SetItemText(1,9,str6);
		  }
	dc->SelectObject (&oldpen);
	/////////////////////屏幕提示栏
if(fbflag==1)
{
if(leftzu<0.2|rightzu<0.2)
	controldc->TextOut(0,0,"检测完毕,合格!");
    else
	controldc->TextOut(0,0,"制动力过大,不合格!");
}
else
{	
if(leftzu<0.24|rightzu<0.24)
    controldc->TextOut(0,0,"检测完毕,合格!");
else
    controldc->TextOut(0,0,"制动力过大不合格");
}
}
	else
	{
	/*dc=GetDlgItem(IDC_G)->GetDC();
		GetDlgItem(IDC_BUTTON4)->EnableWindow(true);
	GetDlgItem(IDC_BUTTON3)->EnableWindow(false);
	////////////////////////画坐标系
	
	dc->TextOut (-15,333,"原点");
	dc->TextOut(2,-5,"100N");
	dc->TextOut(410,333,"时间:0.1S");
	dc->TextOut(2,10,"红线为左制动力,绿线为右制动力");
	//画坐标轴
	dc->MoveTo (2,0);
    dc->LineTo (2,330);
	dc->LineTo (400,330);
    dc->MoveTo (0,4);
	dc->LineTo (2,0);
	dc->LineTo (4,4);
	dc->MoveTo (396,328);
	dc->LineTo (400,330);
	dc->LineTo(396,332);

	//画刻度
	
	long i,j;
	for (i=0;i<66;i++)
	{
		dc->MoveTo (2,330-5*i);
		dc->LineTo (4,330-5*i);
	}
	for (j=0;j<79;j++)
	{ 
		dc->MoveTo (2+5*j,330);
		dc->LineTo (2+5*j,328);
	}	

	//////////////////////抛物线模拟
		CPen *oldpen;
	CPen pen1,pen2;
    pen1.CreatePen (PS_DASH,2,RGB(255,0,0));
	pen2.CreatePen (PS_DASH,2,RGB(0,255,0));
	float px=0,py=0;
	float k=0,temp,temp1;
	CString var3,var4;
		mdc=GetDlgItem(IDC_Lr)->GetDC();
		mdc0=GetDlgItem(IDC_Lr2)->GetDC();
	while(k<240)
	{
        
		var3.Format ("%ld",px);
		var4.Format ("%ld",py);
       	mdc->TextOut(20,20,var3);
        mdc0->TextOut(20,20,var4);

     dc->SelectObject (&pen1);
		dc->MoveTo(k,330-px);
		dc->LineTo(k+2,330-(2.7*k-0.01*k*k));
		
        dc->SelectObject (&pen2);
		dc->MoveTo(k,330-py);
		dc->LineTo(k+2,330-(3.45*k-0.012*k*k));
		
       ::Sleep (50);
      k=k+0.5;
	  if (px<2.7*k-0.01*k*k)
	  {
       temp=2.7*k-0.01*k*k;
	  }
	  else
	  {
		  temp=px;
	  }
	  if (py<3.45*k-0.012*k*k)
	  {
		  temp1=3.45*k-0.012*k*k;
	  }
	  else
	  {
		  temp1=py;
	  }

	  }*/

	}
	/* data p;
	   p.dc=dc;
	   p.powerset=&powerset;*/
  // AfxBeginThread(ThreadProc,&p);
   

// TODO: Add your control notification handler code here
	
}

void CCartestDlg::OnButton3() 
{

CFont font;
GetDlgItem(IDC_BUTTON3)->EnableWindow(false);
   GetDlgItem(IDC_BUTTON4)->EnableWindow(true);
GetDlgItem(IDC_BUTTON1)->EnableWindow(true);

SetDlgItemText(IDC_Title,"待命检测........");

GetDlgItem(IDC_Title)->SetFont(&font);

	// TODO: Add your control notification handler code here
	
}

void CCartestDlg::OnButton2() 
{
//TODO: Add your control notification handler code here
	
}

void CCartestDlg::OnButton1() 
{
	CAboutDlg sys;
	sys.DoModal ();
	// TODO: Add your control notification handler code here
	
}



void CCartestDlg::OnButton5() 
{
MESSAGEDIALOG dlg;
dlg.DoModal ();
  // TODO: Add your control notification handler code here
	
}
   


void CCartestDlg::OnButton6() 
{
CCartestDlg dlg;
		CString s;
		m_set.m_strFilter.Format("[车主名]='%s'",number[0]);
		if(m_set.IsOpen())
        m_set.Requery();
            else 
				m_set.Open();
		
		 m_set.AddNew();
		m_set.m_column1=number[0];
		 m_set.m_column2=number[1];
	  m_set.m_column3=number[2];
		 m_set.m_column4=number[3];
		 m_set.m_column5=number[4];
		 m_set.m_column6=number[5];
		 m_set.Update();
			 m_set.m_strFilter="";
				MessageBox("保存成功!","恭喜",MB_OK);
			m_set.Close();
		
		

		
	
	 
}
void CCartestDlg::SetPrinterSettings(CDC *pDC, HDC hdcPrn)
{
       short cxPage, cyPage;

       cxPage = ::GetDeviceCaps (hdcPrn, HORZRES) ;
       cyPage = ::GetDeviceCaps (hdcPrn, VERTRES) ;
       pDC->SetMapMode (MM_ISOTROPIC) ;
       pDC->SetWindowExt ( 1000, 1000) ;
       pDC->SetViewportExt (cxPage / 2, -cyPage / 2) ;
       pDC->SetViewportOrg (cxPage / 2,  cyPage / 2) ;
       pDC->SetTextAlign (TA_BASELINE | TA_CENTER) ;
} 


void CCartestDlg::OnPRintG() 
{
	// TODO: Add your control notification handler code here

	 CString szContents;
	   GetDlgItemText( IDC_G, szContents );
       HDC    hdcPrn ;
       CPrintDialog *printDlg =
           new CPrintDialog(FALSE, PD_ALLPAGES | PD_RETURNDC, NULL);
       printDlg->m_pd.nMinPage = printDlg->m_pd.nMaxPage = 1;
       printDlg->m_pd.nFromPage = printDlg->m_pd.nToPage = 1;
       printDlg->DoModal();
       hdcPrn = printDlg->GetPrinterDC();
       if (hdcPrn != NULL)
       {
           CDC *pDC = new CDC;
           pDC->Attach (hdcPrn);    
		   pDC->StartDoc("My Printer Dialog");  
           pDC->StartPage();         
           SetPrinterSettings(pDC, hdcPrn);
           pDC->TextOut(10, 10, szContents);
           pDC->EndPage(); 
		   pDC->EndDoc();    
           pDC->Detach();      
           delete pDC;
        }
       delete printDlg;
}

void CAboutDlg::OnStart() 
{
	// TODO: Add your control notification handler code here
MessageBox("没有获得左电机信息!","电机控制",MB_OKCANCEL);
GetDlgItem(IDC_Stop)->EnableWindow(true);
}

void CAboutDlg::OnStart3() 
{
	// TODO: Add your control notification handler code here
GetDlgItem(IDC_Stop)->EnableWindow(true);
	MessageBox("没有获得右电机的信息!","电机控制",MB_OKCANCEL);
}

void CAboutDlg::OnStop() 
{
	// TODO: Add your control notification handler code here

}

BOOL CAboutDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
GetDlgItem(IDC_Stop)->EnableWindow(false);	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
//画图函数,在控件PICTRUE上画曲线

//开始检测开线程的回调函数
UINT ThreadProc(LPVOID pPar)
{
	data * temp=(data *)pPar;
       CDC *dc=(CDC *)(temp->dc);
	   CPowerSet *powerset=(CPowerSet *)(temp->powerset);
       CString s;
	   //while(!powerset->IsEOF())
	 //  powerset->MoveFirst();
	   AfxMessageBox("ready to open!");
	   if(!powerset->IsOpen())
	      powerset->Open();
       powerset->MoveFirst();
	   if(!powerset->IsEOF())
	   {
		   AfxMessageBox("ready catch data!");
		   for(int i=0;i<3;i++) 
		   {
		 
		//AfxMessageBox("ready catch data!");
		  s.Format("%ld,%ld",powerset->m_column3,powerset->m_column4);
		 // AfxMessageBox("ready catch data!");
	     AfxMessageBox(s);
		 powerset->MoveNext();
		   }
	   }

	   /*
       dc->MoveTo(10,10);
	   for(int i=0;i<10;i++)
	   {
	     dc->LineTo(20+i,30-2*i);
		 	::Sleep(100);
	   } */    
		::Sleep(100);
		return 0;	
}



void CCartestDlg::OnOK() 
{

	EndDialog(0);

}

void CAboutDlg::OnJs() 
{
	// TODO: Add your control notification handler code here
MessageBox("没有获得举升器信息","举升器控制",MB_OKCANCEL);	
}

void CAboutDlg::OnJj() 
{
MessageBox("没有获得举升器信息","举升器控制",MB_OKCANCEL);	
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -