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

📄 curvehistorydlg.cpp

📁 远程视频监控系统最新程序代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			  nCurPos++;
		  }
		  else
		  {
			  nState=BREAK_POINT;
		  }
          m_nCurveHistFlow.SetPos(nIndex,nAnavalArray[i][nCurPos],nState,nTimeArray[0]);
		  nIndex++;
		}
        nEndTime+=nTimeInterval;
		m_nCurveHistFlow.Go(TRUE);
	  } 
	  */
  }  
  m_nCurveHistFlow.Invalidate(TRUE);

   CTime  nTime;
   m_nBeginTime=m_nCurveHistFlow.GetStartTime();
   m_nEndTime=m_nCurveHistFlow.GetEndTime();
   nTime=m_nBeginTime;
   CString nStr;
   nStr.Format("从%-2d/%-2d:%-2d:%-2d  ",nTime.GetMonth(),nTime.GetDay(),nTime.GetHour(),nTime.GetMinute());
   GetDlgItem(IDC_BUTTON_BEGINDATE)->SetWindowText(nStr);    
   nStr.Empty();
   OnCurveFlowSplitXChange(0,0);
  return 0;
}


LRESULT CCurveHistoryDlg::OnCurveFlowBackMove(WPARAM wParam,LPARAM lParam)
{
   CHistoryData pHistoryData;
  CCurveDrawStruct *pCurveDrawStruct;
  float nAnavalArray[MAX_CURVE_NUMPERGROUP][32];
  long  nTimeArray[32];
  float nCurAnaval;
  short nCount,nSum;
  nCount=(short)wParam;
  if ((nCount<=0)||(nCount>32)) return 0;
 // nCount=1;	
  if (lParam==HIST_MOVE_CURVE)
  {
     m_nEndTime=m_nCurveHistFlow.GetEndTime();
	 m_nBeginTime=m_nCurveHistFlow.GetStartTime();
     ReDraw(); 
  }
  else
  {
	  /*
	  time_t nTime;
      short nTimeInterval=m_nCurveHistFlow.GetIntervalTime()/60;
	  nTime=m_nCurveHistFlow.GetStartTime();
	  short nGroupNo;
	  nGroupNo=m_nList.GetCurSel();
	  if ((nGroupNo<0)||(nGroupNo>MAX_CURVE_NUMPERGROUP))return 0;
	  for (int i=0;i<MAX_CURVE_NUMPERGROUP;i++)
	  {
        pCurveDrawStruct=m_pCurveDrawStruct+nGroupNo*MAX_CURVE_NUMPERGROUP+i;
	    if (pCurveDrawStruct->nNo<0) continue;
        pHistoryData.GetHistDataArray(pCurveDrawStruct->nNo,nTimeInterval,nCount,nAnavalArray[i],nTimeArray);		    	
	  }
	  long nEndTime;
	  nEndTime=m_nCurveHistFlow.GetEndTime();
	  for(i=0;i<nCount;i++)
	  {	 
		short nIndex=0,nCurPos=0,nState;
           
		for(int j=0;j<MAX_CURVE_NUMPERGROUP;j++)
		{
          pCurveDrawStruct=m_pCurveDrawStruct+(nGroupNo)*MAX_CURVE_NUMPERGROUP+j;
	      if (pCurveDrawStruct->nNo<0) continue;
		  if (nTimeArray[nCurPos]==nEndTime)
		  {
			  nState=NORMAL_POINT; 
			  nCurPos++;
		  }
		  else
		  {
			  nState=BREAK_POINT;
		  }
          m_nCurveHistFlow.SetPos(nIndex,nAnavalArray[i][nCurPos],nState,nTimeArray[0]);
		  nIndex++;
		}
        nEndTime-=nTimeInterval;
		m_nCurveHistFlow.Go(FALSE);
	  } 
	  */
  }  
  m_nCurveHistFlow.Invalidate(TRUE);
  
    CTime  nTime;
	m_nBeginTime=m_nCurveHistFlow.GetStartTime();
	m_nEndTime=m_nCurveHistFlow.GetEndTime();
	nTime=m_nBeginTime;
	CString nStr;
    nStr.Format("从%-2d/%-2d:%-2d:%-2d  ",nTime.GetMonth(),nTime.GetDay(),nTime.GetHour(),nTime.GetMinute());
    GetDlgItem(IDC_BUTTON_BEGINDATE)->SetWindowText(nStr);
	nStr.Empty();
    OnCurveFlowSplitXChange(0,0);


  return 0;
}

void CCurveHistoryDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here

}

void CCurveHistoryDlg::OnButtonExitHist() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}

void CCurveHistoryDlg::OnButtonPrintHist() 
{
	// TODO: Add your control notification handler code here
	
   	time_t nStartTime,nEndTime,nCurTime;
	float nCurAnaval[MAX_CURVE_NUMPERGROUP];
    float nAnavalArray[MAX_CURVE_NUMPERGROUP][610];
	long  nTimeArray[MAX_CURVE_NUMPERGROUP][610];
	CCurveDrawStruct *pCurveDrawStruct;
    CString sName[MAX_CURVE_NUMPERGROUP];
	
	AfxGetApp()->BeginWaitCursor();
	CHistoryData pHistoryData;
	short nIndex=0;
	nStartTime=m_nCurveHistFlow.GetStartTime();
	nEndTime  =m_nCurveHistFlow.GetEndTime();
	short nTimeInterval=m_nCurveHistFlow.GetIntervalTime();
	short nSum=(nEndTime-nStartTime)/nTimeInterval+1;
	nCurTime=m_nCurveHistFlow.GetCurSplitTime();
	for (int i=0;i<MAX_CURVE_NUMPERGROUP;i++)
	{ 	
	   short nCount=0;	
	   pCurveDrawStruct=m_pCurveDrawStruct+m_nCurGroupNo*MAX_CURVE_NUMPERGROUP+i;
       if ((pCurveDrawStruct->nNo<0)||(pCurveDrawStruct->nNo>=MAX_HIST_POINT)) continue;
       pHistoryData.GetName(pCurveDrawStruct->nNo,&sName[i]);
	   nTimeArray[nIndex][0]=nEndTime;
	   for(int j=1;j<nSum;j++)
	   {
		   nTimeArray[nIndex][j]=nTimeArray[nIndex][j-1]-nTimeInterval;
	   }
       nCount=pHistoryData.GetHistDataArray(pCurveDrawStruct->nNo,nTimeInterval,nSum,nAnavalArray[nIndex],nTimeArray[nIndex]);	
	   nCurAnaval[nIndex]=0;
	   for(j=0;j<nCount;j++)
	   {
		   if (pHistoryData.InTimeRange(nCurTime,nTimeArray[nIndex][j],nTimeInterval))
		   {
			   nCurAnaval[nIndex]=nAnavalArray[nIndex][j];
			   break;
		   }
	   }
       m_nCurveHistFlow.PreparePrint(nIndex,nCount,nTimeArray[nIndex],nAnavalArray[nIndex],(LPSTR)(LPCTSTR)sName[i]);
	   nIndex++;
	}
	m_nCurveHistFlow.Printer(nStartTime,nEndTime,nCurTime,nCurAnaval);
	m_nCurveHistFlow.EndPrint();
	AfxGetApp()->EndWaitCursor();	
	
}

void CCurveHistoryDlg::OnButtonApplyhist() 
{
	// TODO: Add your control notification handler code here   
	short nHour=m_nSpinTimeLen.GetPos();
	short nMinute=m_nSpinTimeMinute.GetPos();
	BOOL bChange=FALSE;
	int  nLen=nHour*3600+nMinute*60;
	if (nLen>86400) 
	{
		 char nStr[64];
		 sprintf(nStr,"曲线的最大的时间长度不能大于24小时");
		 AfxMessageBox(nStr);
		 return;
	}
	else
	{
		if (nLen==0)
		{
           char nStr[64];
		   sprintf(nStr,"曲线的最大的时间长度不能为0");
		   AfxMessageBox(nStr);
		   return;
		}
	}

	time_t nTempTime=m_nEndTime;
	m_nEndTime=m_nBeginTime+nLen;
	if (nTempTime!=m_nEndTime) bChange=TRUE;
	CTime nTime;
	nTime=CTime::GetCurrentTime();
	if (m_nEndTime>nTime.GetTime()) 
	{
		   char nStr[64];
		   sprintf(nStr,"曲线的结束时间不能大于当前时间");
		   m_nSpinTimeLen.SetPos(m_nOldTimeLen/3600);
		   m_nSpinTimeMinute.SetPos((m_nOldTimeLen%3600)/60);
		   AfxMessageBox(nStr);
		   return;
	}
	AfxGetApp()->BeginWaitCursor();

    CCurveDrawStruct *pCurveDrawStruct;
	UpdateData(TRUE);
	  for(int i=0;i<MAX_CURVE_NUMPERGROUP;i++)
	  {
	    pCurveDrawStruct=m_pCurveDrawStruct+m_nCurGroupNo*MAX_CURVE_NUMPERGROUP+i;
	    if ((pCurveDrawStruct->nNo<0)||(pCurveDrawStruct->nNo>=MAX_HIST_POINT)) continue;
		float nTemp;
		m_nDownArray[i]->TrimLeft();
		m_nDownArray[i]->TrimRight();
		nTemp=(float)atof((LPSTR)(LPCTSTR)*m_nDownArray[i]);
 		if (fabs(nTemp-pCurveDrawStruct->nDown)>1e-2)
		{
			bChange=TRUE;
            pCurveDrawStruct->nDown=nTemp;
			break;
		}
		m_nUpperArray[i]->TrimLeft();
		m_nUpperArray[i]->TrimRight();
		nTemp=(float)atof((LPSTR)(LPCTSTR)*m_nUpperArray[i]);
 		if (fabs(nTemp-pCurveDrawStruct->nUpper)>1e-2)
		{
			bChange=TRUE;
			pCurveDrawStruct->nUpper=nTemp;
			break;
		}  
	  };
    
	if (nLen!=m_nOldTimeLen) 
	{
		bChange=TRUE;
		m_nOldTimeLen=nLen;
	}
	else if (m_nBeginTime!=(m_nEndTime-nLen*3600))
	{
		bChange=TRUE;
	}
    
	if (bChange)
	{
 	   int nTimeInterval;	   
	    
		 nTimeInterval=nLen/600;
         m_nCurveHistFlow.SetTimePigment(nTimeInterval,1);
         ReDraw();
	}
	GetDlgItem(IDC_BUTTON_APPLYHIST)->EnableWindow(FALSE);
    AfxGetApp()->EndWaitCursor();
}


void CCurveHistoryDlg::InitCtrl()
{
  CCurveDrawStruct *pCurveDrawStruct;

  int i;
  if (m_nCurSystem==0) i=0;
  else i=MAX_TURBINE_CURVE;
   for(;i<MAX_CURVE_GROUP;i++)
   {
     for(int j=0;j<MAX_CURVE_NUMPERGROUP;j++)
	 {
       pCurveDrawStruct=m_pCurveDrawStruct+i*MAX_CURVE_NUMPERGROUP+j;
	   if (pCurveDrawStruct->nNo>=0) 
	   { 		 
         m_nList.AddString(m_nCurveGroupName[i]);
		 break;
	   }
	 }
	 if (j==MAX_CURVE_NUMPERGROUP) break;
   }
   m_nList.SetCurSel(0);

   m_nDownArray[0]=&m_nDownHist1;
   m_nDownArray[1]=&m_nDownHist2;
   m_nDownArray[2]=&m_nDownHist3;
   m_nDownArray[3]=&m_nDownHist4;
   

   m_nUpperArray[0]=&m_nUpperHist1;
   m_nUpperArray[1]=&m_nUpperHist2;
   m_nUpperArray[2]=&m_nUpperHist3;
   m_nUpperArray[3]=&m_nUpperHist4;
   

   m_nNameArray[0]=&m_nNameHist1;
   m_nNameArray[1]=&m_nNameHist2;
   m_nNameArray[2]=&m_nNameHist3;
   m_nNameArray[3]=&m_nNameHist4;
    
 
   m_nCurAnavalArray[0]=&m_nAnavalHist1;
   m_nCurAnavalArray[1]=&m_nAnavalHist2;
   m_nCurAnavalArray[2]=&m_nAnavalHist3;
   m_nCurAnavalArray[3]=&m_nAnavalHist4;
    
   
   m_nButtonID[0]=IDC_BUTTON_HISTITEM1;
   m_nButtonID[1]=IDC_BUTTON_HISTITEM2;
   m_nButtonID[2]=IDC_BUTTON_HISTITEM3;
   m_nButtonID[3]=IDC_BUTTON_HISTITEM4;
    

   m_nStaticID[0]=IDC_STATIC_UNIT_HIST1;
   m_nStaticID[1]=IDC_STATIC_UNIT_HIST2;
   m_nStaticID[2]=IDC_STATIC_UNIT_HIST3;
   m_nStaticID[3]=IDC_STATIC_UNIT_HIST4;
   
   m_nSpinTimeLen.SetBuddy(&m_nEditTimeLen);
   m_nSpinTimeLen.SetRange(0,24);
   m_nSpinTimeLen.SetPos(0);
   m_nOldTimeLen=1800;
   m_nSpinTimeMinute.SetBuddy(&m_nEditTimeMinute);
   m_nSpinTimeMinute.SetRange(0,30);
   UDACCEL nUdaccel;
   nUdaccel.nSec=1;
   nUdaccel.nInc=30;
   m_nSpinTimeMinute.SetAccel(1,&nUdaccel);
   m_nSpinTimeMinute.SetPos(30);

   m_nSpinDown1.SetRange(-10,10);
   m_nSpinDown1.SetPos(0);
   m_nSpinDown2.SetRange(-10,10);
   m_nSpinDown2.SetPos(0);
   m_nSpinDown3.SetRange(-10,10);
   m_nSpinDown3.SetPos(0);
   m_nSpinDown4.SetRange(-10,10);
   m_nSpinDown4.SetPos(0);

   m_nSpinUpper1.SetRange(-10,10);
   m_nSpinUpper1.SetPos(0);
   m_nSpinUpper2.SetRange(-10,10);
   m_nSpinUpper2.SetPos(0);

⌨️ 快捷键说明

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