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

📄 digitalpoweranalystview.cpp

📁 串行通讯程序,为电池分析仪与电脑通讯软件,效果不错.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
   break;  
 case 8: 
	 if(m_StationOnLine[4])
   {
	m_ComPort.WriteToDevice((char ) 0x96,4,0,"",0);//23 Return whether a adapter is present in a station or not 
		
   	   
		
   }
   break;  
 case 10: 
	 if(m_StationOnLine[1])
   {
	m_ComPort.WriteToDevice((char ) 0x97,1,0,"",0);//23 Return whether a adapter is present in a station or not 

		   
		
		
   }
   break;  
 case 12: 
	 if(m_StationOnLine[2])
   {
	m_ComPort.WriteToDevice((char ) 0x97,2,0,"",0);//23 Return whether a adapter is present in a station or not 
		
	 	   
		
   }
   break;   
 case 14: 
	 if(m_StationOnLine[3])
   {
	m_ComPort.WriteToDevice((char ) 0x97,3,0,"",0);//23 Return whether a adapter is present in a station or not 
		
 	   
		
   }
   break;  
 case 16: 
	 if((m_StationOnLine[4]))
   {
	m_ComPort.WriteToDevice((char ) 0x97,4,0,"",0);//23 Return whether a adapter is present in a station or not 
		
   	   
		
   }

	break;   
 case 18: 
	 if((m_BatteryStatus[1]))	
	{  
	m_ComPort.WriteToDevice((char )0x83,1,0,"",0); //25 Return the special data-format for battery-pack 
	  }
	break;   
 case 20: 
	 if((m_BatteryStatus[2]))	
	{  
	m_ComPort.WriteToDevice((char )0x83,2,0,"",0); //25 Return the special data-format for battery-pack 
	  }
	break;  
 case 22: 
	 if((m_BatteryStatus[3]))	
	{  
	m_ComPort.WriteToDevice((char )0x83,3,0,"",0); //25 Return the special data-format for battery-pack 
	  }
	break;  
 case 24: 
	 if((m_BatteryStatus[4]))	
	{  
	m_ComPort.WriteToDevice((char )0x83,4,0,"",0); //25 Return the special data-format for battery-pack 
	  }

	break;   
 case 26: 
	 if((m_BatteryStatus[1]))	
	{  
	m_ComPort.WriteToDevice((char )0x88,1,0,"",0); //25 Return the special data-format for battery-pack 
	  }
	break;   
 case 28:
	 if((m_BatteryStatus[2]))	
	{  
	m_ComPort.WriteToDevice((char )0x88,2,0,"",0); //25 Return the special data-format for battery-pack 
	  }
	break;   
 case 30:
	 if((m_BatteryStatus[3]))	
	{  
	m_ComPort.WriteToDevice((char )0x88,3,0,"",0); //25 Return the special data-format for battery-pack 
	  }
	break;  
 case 32:
	 if((m_BatteryStatus[4]))	
	{  
	m_ComPort.WriteToDevice((char )0x88,4,0,"",0); //25 Return the special data-format for battery-pack 
	  }
	break;   
 case 34: 
	 //if((m_BatteryStatus[1]))	
	{  
	m_ComPort.WriteToDevice((char )0x99,1,0,"",0); //25 Return the special data-format for battery-pack 
	  }
	break;   
 case 36: 
	 if((m_BatteryStatus[2]))	
	{  
	m_ComPort.WriteToDevice((char )0x99,2,0,"",0); //25 Return the special data-format for battery-pack 
	  }
	break;  
 case 40: 
	 if((m_BatteryStatus[3]))	
	{  
	m_ComPort.WriteToDevice((char )0x99,3,0,"",0); //25 Return the special data-format for battery-pack 
	  }
	break;  
 case 42: 
	 if((m_BatteryStatus[4]))	
	{  
	m_ComPort.WriteToDevice((char )0x99,4,0,"",0); //25 Return the special data-format for battery-pack 

	  }
	break; 
  case 44: 
	 // if((m_BatteryStatus[4]))	
	{  
	m_ComPort.WriteToDevice((char )0xBD,0,0,"",0); //25 Return the special data-format for battery-pack 

	  }
	break;
  case 46: 
	 // if((m_BatteryStatus[4]))	
	{  
//	m_ComPort.WriteToDevice((char )0x85,0,0,"",0); //25 Return the special data-format for battery-pack 

	  }
	break;
	}
 
//Invalidate(FALSE);
  // for(int j=0;j<8;j++)
  // m_BatteryStatus[j]=1;
   switch (lInterval%8)
   {
  case 1: //if((m_BatteryStatus[1]))
	{
	m_ComPort.WriteToDevice((char )0x8B,1,0,"",0);//11  send detail display data

	}
	break;  
   case 3: //if((m_BatteryStatus[2]))
	{	
	m_ComPort.WriteToDevice((char )0x8B,2,0,"",0);//11  send detail display data
		   
	}
	break;
   case 5: //if((m_BatteryStatus[3]))
	{	//

	m_ComPort.WriteToDevice((char )0x8B,3,0,"",0);//11  send detail display data
	
	
	}
	break; 
   case 7:// if((m_BatteryStatus[4]))	
	{
	m_ComPort.WriteToDevice((char )0x8B,4,0,"",0); //25 Return the special data-format for battery-pack 
	 //m_StaticPicture.InvalidateRect(&rectLcd  ,  TRUE );
  

	}
	 
	break; 
   }

	
		m_lInterval=(long)(lInterval *1.5);
        	lInterval++;
		
}
void CDigitalPowerAnalystView::WriteToPicture(int x,int y,int z)
{static  long TotlLineDot=0;
  int tmpY,tmpX,tmpZ;
  long RestoreNum;
static long LineDotNum=0;	
static int OldXPicture;
 static int OldYPicture;
  static int OldZPicture;
  int tmpMidY,tmpMidX,tmpMidZ;
  CString tmpStr;  
   if(bClearData==TRUE)
   {TotlLineDot=0;
   LineDotNum=0;
    bClearData=FALSE;
		return;
   }
    pDCPicture=new CClientDC(&m_StaticDataDisp);//&m_StaticPicture);&m_StaticDataDisp
	CPen * oldPenPicture=(CPen*)pDCPicture->SelectObject(&penPicture);

	tmpY=y; tmpX=x;tmpZ=z; 
	if((TotlLineDot==0)&&(m_CHECKStationALL ==FALSE) )
	{
 
{
   m_StepScaleY=STEPSCALEY;
   m_StandMinY=(int)((int)(y/STEPSCALEY)*STEPSCALEY);
   m_StandMaxY=(int)(((int)(y/STEPSCALEY)*STEPSCALEY+m_StepScaleY));
     ChangeLable( m_StandMinY,m_StepScaleY/8);//    
	m_StandMinX=0;
	m_StandMaxX=1800;
	m_StepScaleX=1800;
 	     ChangLableTime(   m_StandMinX,m_StepScaleX/8);
    m_StepScaleZ=STEPSCALEZ;
   m_StandMinZ=(int)((int)(z/STEPSCALEZ)*STEPSCALEZ);
   m_StandMaxZ=(int)(((int)(z/STEPSCALEZ)*STEPSCALEZ+m_StepScaleZ));
     ChangLabeCurrent( m_StandMinZ,m_StepScaleZ/8);//    

}
	}

	x=nLeftPicture+nRightPicture*(tmpX-m_StandMinX)/m_StepScaleX;//5000
	y=nBottomPicture-int(nBottomPicture*((tmpY-m_StandMinY)/m_StepScaleY));//-m_StandMinY
	z=nBottomPicture-int(nBottomPicture*((tmpZ-m_StandMinZ)/m_StepScaleZ));
	if((	m_bTranStation==TRUE)||(TotlLineDot==0))
	{
	OldXPicture=x;
	OldYPicture=y;
	OldZPicture=z;
    }


    if(m_bTranStation==FALSE)
	{
		LineDotNum++;   TotlLineDot++;
	}
		if(x>nRightPicture)
	{	m_StandMinX=tmpX;
       m_StandMaxX=m_StandMinX+m_StepScaleX;
	     ChangLableTime(   m_StandMinX,m_StepScaleX/8);//
	 	 LineDotNum=0;
 		ClearLine();
		WriteGrid(&m_StaticDataDisp);
 
	//5000
	OldXPicture=0;
	x=nLeftPicture+nRightPicture*(tmpX-m_StandMinX)/m_StepScaleX;//5000
		} 
	while(y>nBottomPicture)
	{	m_StepScaleY=m_StepScaleY+STEPSCALEY;
        m_StandMinY=m_StandMinY-STEPSCALEY;///2
	 y=nBottomPicture-nBottomPicture* (float(tmpY-m_StandMinY)/(m_StepScaleY));//-m_StandMinY
	 m_bTranStation=TRUE;
         OldXPicture=x;
	     OldYPicture=y;	
	}
	while(z>nBottomPicture)
	{	m_StepScaleZ=m_StepScaleZ+STEPSCALEZ;
        m_StandMinZ=m_StandMinZ-STEPSCALEZ;///2
	 z=nBottomPicture-nBottomPicture* (float(tmpZ-m_StandMinZ)/(m_StepScaleZ));//-m_StandMinY
	 m_bTranStation=TRUE;
         OldXPicture=x;
	     OldZPicture=z;	
	   	
	}



	while(y<0)
	{ 	m_StepScaleY=m_StepScaleY+STEPSCALEY ;
	 	m_StandMaxY=m_StandMinY+STEPSCALEY;///2
		y=nBottomPicture-nBottomPicture* (float(tmpY-m_StandMinY)/m_StepScaleY);//-m_StandMinY
	 m_bTranStation=TRUE;
 
 	}
	while(z<0)
	{ 	m_StepScaleZ=m_StepScaleZ+STEPSCALEZ ;
	 	m_StandMaxZ=m_StandMinY+STEPSCALEZ;///2
		z=nBottomPicture-nBottomPicture* (float(tmpZ-m_StandMinZ)/m_StepScaleZ);//-m_StandMinY
	 m_bTranStation=TRUE;
 
 	}
	   if(	 m_bTranStation==TRUE)
	   {
 	    ChangeLable( m_StandMinY,m_StepScaleY/8);//
		ChangLabeCurrent( m_StandMinZ,m_StepScaleZ/8);//
	  //OnDraw(pDCPicture) ;
		ClearLine();
		WriteGrid(&m_StaticDataDisp);
         OldXPicture=x;
	     OldYPicture=y;	
	     OldZPicture=z;
	   }
	UpdateData(FALSE);
//	tmpY=OldYPicture;/////////
	pDCPicture->SelectObject(&penPicture);   
 	pDCPicture->MoveTo(OldXPicture,OldYPicture);
	pDCPicture->LineTo(x,y); 
	pDCPicture->SelectObject(&penPictureV);
 	pDCPicture->MoveTo(OldXPicture,OldZPicture);
	pDCPicture->LineTo(x,z); 

   if(	 m_bTranStation==TRUE)
   {	
	   //if((!m_pSet->IsEOF())&&(!m_pSet->IsBOF()))
		m_pSet->MoveLast();	
	   if(m_CHECKStationALL ==TRUE)
		 RestoreNum=(TotlLineDot)*4+CurStation-1;
		  else
		 RestoreNum=(LineDotNum )*4+CurStation -1;
		
     for(int j=0;j< RestoreNum;j++)
 		  { 	if(!m_pSet->IsBOF())
	          m_pSet->MovePrev();
 
			}
 
			for(  j=0;j< RestoreNum;j++)
 			 {
		
		      if(CurStation==m_pSet->m_Station)
			  {
		 		x=nLeftPicture+nRightPicture*(m_pSet->m_CourseTime-m_StandMinX)/m_StepScaleX;//5000
         		y=nBottomPicture-nBottomPicture* (float(m_pSet->m_ChargeVoltage-m_StandMinY)/m_StepScaleY); 
        		z=nBottomPicture-nBottomPicture* (float(m_pSet->m_ChargeCurrent-m_StandMinZ)/m_StepScaleZ); 				
				if (j/4==0)
				{	 //pDCPicture->MoveTo(x,y);
					 tmpMidY=y;
					 tmpMidX=x;
					 tmpMidZ=z;
				}
					else
					{
				//	if(j>=4)
					pDCPicture->SelectObject(&penPicture);
				  	pDCPicture->MoveTo(tmpMidX,tmpMidY);
					pDCPicture->LineTo(x,y);
					pDCPicture->SelectObject(&penPictureV);
				  	pDCPicture->MoveTo(tmpMidX,tmpMidZ);
					pDCPicture->LineTo(x,z);
					tmpMidY=y;
					tmpMidX=x;
					tmpMidZ=z;
					}
			  }
			  		 if( (!m_pSet->IsEOF()))
					{
					m_pSet->MoveNext();	//Prev
					}
			}
 
		m_pSet->MoveLast();	
          //  pDCPicture->MoveTo(x,y);
	 
	  m_bTranStation=FALSE;
   }
 
    OldXPicture=x;
	OldYPicture=y;	
	OldZPicture=z;
	pDCPicture->SelectObject(oldPenPicture);
 	delete[] pDCPicture;

}
/*
void CDigitalPowerAnalystView::WriteToPictureALL(int x,int y)
{static  int i=0;
  int tmpY,tmpX,MinY,m_StandMaxY;
static long LineDotNum=0;	

 
  CString tmpStr;  
 
    pDCPicture=new CClientDC(&m_StaticDataDisp);//&m_StaticPicture);&m_StaticDataDisp
	CPen * oldPenPicture=(CPen*)pDCPicture->SelectObject(&penPicture);
 

	if((i==0)&&(m_bTranStation==FALSE) )
	{

   m_StepScaleY=312.5;
   m_StandMinY=(int)((y/312)*STEPSCALEY);
   m_StandMaxY=(int)(((y/312)*STEPSCALEY+STEPSCALEY));
     ChangeLable( m_StandMinY,m_StepScaleY/8);//    
	m_StandMinX=0;
	m_StandMaxX=1800;
	m_StepScaleX=1800;
 
    m_bTranStation=FALSE;


	}
	tmpY=y; tmpX=x;
	x=nLeftPicture+nRightPicture*(tmpX-m_StandMinX)/m_StepScaleX;//5000
	y=nBottomPicture-int(nBottomPicture*((tmpY-m_StandMinY)/m_StepScaleY));//-m_StandMinY

	static int OldXPicture=x;
	static int OldYPicture=y;
 
		if(x>nRightPicture)
	{	m_StandMinX=tmpX;
       m_StandMaxX=m_StandMinX+m_StepScaleX;
	     ChangLableTime(   m_StandMinX,m_StepScaleX/8);//
	 	 LineDotNum=0;
 		ClearLine();
		WriteGrid(&m_StaticDataDisp);
  //	this->Invalidate(TRUE);
		//OnDraw(pDCPicture) ;
	//5000
	OldXPicture=0;
x=nLeftPicture+nRightPicture*(tmpX-m_StandMinX)/m_StepScaleX;//5000
		} 
	while(y>nBottomPicture)
	{	m_StepScaleY=m_StepScaleY+STEPSCALEY;
        m_StandMinY=m_StandMinY-STEPSCALEY;///2
	 y=nBottomPicture-nBottomPicture* (float(tmpY-m_StandMinY)/(m_StepScaleY));//-m_StandMinY
	 m_bTranStation=TRUE;
         OldXPicture=x;
	     OldYPicture=y;	
	}




	while(y<0)
	{ 	m_StepScaleY=m_StepScaleY+STEPSCALEY ;
	 	m_StandMaxY=m_StandMinY+STEPSCALEY;///2
		y=nBottomPicture-nBottomPicture* (float(tmpY-m_St

⌨️ 快捷键说明

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