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

📄 operatview.cpp

📁 远程视频监控系统最新程序代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
 
	case 5:  //draw alarm data
		/*
        if (m_Data_Get.DataGetGenerator(this))  //采集发电机数据,并报警
		{ 
			if (m_nAlarmDynamicDisp.HaveAlarm())
			{
			   m_nAlarmDynamicDisp.PlayResource("IDC_ALARMSOUND");
			}
		}
		else  //有二级报警
		{
            m_nAlarmDynamicDisp.PlayResource("IDC_GENERATORALARM");
		}
	    */
		 m_Data_Get.DataGetGenerator(this);  //采集发电机数据,并报警
		 if (m_nAlarmDynamicDisp.HaveAlarm())
		 {
			 m_nAlarmDynamicDisp.PlayResource("IDC_ALARMSOUND");
		 }
		 
		break;

    case 12:		
	   i=m_Data_Get.DataGet(0,this);    //Form 
	   if (i>0)
	   {
		   pDC=GetDC();
		   preColor=pDC->SetBkColor(RGB(210,210,210));
		   preTextColor=pDC->SetTextColor(RGB(255,0,0));
		   sprintf(sztime,"#%d前置机错      ",i);
		   pDC->TextOut(400,m_yH-prompt_y0,sztime);
		   pDC->SetTextColor(preTextColor);
		   pDC->SetBkColor(preColor);
		   ReleaseDC(pDC);
	   }
	   
	 //  m_Data_Get.GetDataFromBoiler(plate_disp.add[9],plate_disp.ch[9]);
	   
       for(i=0;i<m_FromBoiler_Count;i++) m_Data_Get.GetDataFromBoiler(m_FromBoiler_Add[i],m_FromBoiler_Ch[i]);
	  
	  break;
	case 13:		
	   m_Data_Get.DataGet(1,this);    //Form  
	  break;
	case 14:
       break;
    case 15:
	  for (i=0;i<Glob_Calc_Count;i++)
	  { 
		Glob_Calc_Data=Glob_Calc_Data1+i;
		aps=aps1+(Glob_Calc_Data->Own_add)*(MAX_CHNUM+1)+Glob_Calc_Data->Own_ch ;
	    aps2=aps1+Glob_Calc_Data->Calc_add1*(MAX_CHNUM+1)+Glob_Calc_Data->Calc_ch1;
		{
          switch (Glob_Calc_Data->Calc_Type)
		  {
	      case 0://a+b
           temp=aps2->anaVal; 
		   aps2=aps1+Glob_Calc_Data->Calc_add2*(MAX_CHNUM+1)+Glob_Calc_Data->Calc_ch2;
           aps->anaVal=temp+aps2->anaVal; 
		   break;
		  case 1://b*ftw	   
           aps2=aps1+Glob_Calc_Data->Calc_add2*(MAX_CHNUM+1)+Glob_Calc_Data->Calc_ch2;
           aps->anaVal+=ftw*aps2->anaVal; 
		   break;
	      case 2:  //(a+b)/2 
           temp=aps2->anaVal; 
		   aps2=aps1+Glob_Calc_Data->Calc_add2*(MAX_CHNUM+1)+Glob_Calc_Data->Calc_ch2;
           aps->anaVal=(temp+aps2->anaVal)/2;
		   break;
	      case 3:   //a/60
		   aps->anaVal=aps2->anaVal/60;
		   break;
		  case 4:  //sqrt(a)
           temp=aps2->anaVal;
		   if (aps2->anaVal<0) temp=-aps2->anaVal;
           aps->anaVal=sqrt(temp);
		   if (aps2->anaVal<0) aps->anaVal=-aps->anaVal;
          default:
			break;
		  }
		}
	  } 
      break;
	case 16:
         m_Data_Get.DataGet(2,this); 
		break;
	default:
		break;
	}
	CView::OnTimer(nIDEvent);
}


void COperatView::OnDestroy() 
{
	CView::OnDestroy();

	KillTimer(1);
	KillTimer(2);
//	KillTimer(3);
//	KillTimer(4);
	KillTimer(5);
	KillTimer(12);
	KillTimer(13);

	KillTimer(15);
//	KillTimer(16);

	blackPen2.DeleteObject();
	whitePen2.DeleteObject();
	dotPen.DeleteObject();
	grayPen230.DeleteObject();
	grayPen120.DeleteObject();

	for(int i=0;i<6;i++)
	{ 
		if(m_trackbar[i].GetSafeHwnd()!=NULL)
			m_trackbar[i].DestroyWindow();
	}
	for(i=0;i<MAX_PAGE_NUM;i++)
	{
		if (m_Button[i].GetSafeHwnd()!=NULL)
			m_Button[i].DestroyWindow();
	}
}

/////////////-------draw---------//////////////









void COperatView::Def_Init_FormData()
{
    CRect client;
	GetClientRect(&client);
	int yH = client.bottom,xW = client.right; 	   	
	Glob_Grid_Rect.SetRect( 5,data_y0+3,xW-5,yH-key_y0);
	Glob_Grid_LineHeight=(Glob_Grid_Rect.bottom-Glob_Grid_Rect.top)/(rows_Page+1);
	Glob_Grid_Rect.SetRect( 5,data_y0+7,xW-5,data_y0+7+Glob_Grid_LineHeight*(rows_Page+1));

    int disrow =(Glob_Grid_Rect.right-Glob_Grid_Rect.left)/11;
	Glob_Grid_Left[0] = Glob_Grid_Rect.left;
	Glob_Grid_Left[1] = Glob_Grid_Rect.left+disrow;
	Glob_Grid_Left[2] = Glob_Grid_Rect.left+2*disrow;
	Glob_Grid_Left[3] = Glob_Grid_Rect.left+5*disrow;
	Glob_Grid_Left[4] = Glob_Grid_Rect.left+7*disrow-30;
	Glob_Grid_Left[5] = Glob_Grid_Rect.left+8*disrow-20;
	Glob_Grid_Left[6] = Glob_Grid_Rect.left+9*disrow-10;
	Glob_Grid_Left[7] = Glob_Grid_Rect.left+10*disrow;
  
}

void COperatView::Def_Draw_AnavalStaticData(CDC* pDC)
{
  CFont *oldFont;
  oldFont=pDC->SelectObject(&m_TableFont);
  for(int i=0;i<rows_Page;i++)
  {   
	if (m_nCurSystem==0) no_add_tab	= no_add_tab1+curTask*rows_Page+i+1;
	else no_add_tab	= no_add_tab1+MAX_TURBINE+curTask*rows_Page+i+1;
    //if(no_add_tab->psNo<=0) continue; 
	if((no_add_tab->add<1)||(no_add_tab->add>(MAX_ADNUM+2))) continue;
    if((no_add_tab->ch<1)||(no_add_tab->ch>MAX_CHNUM)) continue;  
	char szbuf[32];	
	if (no_add_tab->add>MAX_ADNUM)
	{
	    aps=aps1+no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;
        sprintf(szbuf,"%d",no_add_tab->psNo);
       	pDC->TextOut(Glob_Grid_Left[0]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
	    pDC->TextOut(Glob_Grid_Left[1]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,aps->psCode);
        code_name_tab= code_name_tab1+ no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;	 
	    pDC->TextOut(Glob_Grid_Left[2]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,code_name_tab->psName);
        pDC->TextOut(Glob_Grid_Left[4]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,aps->sysUnit);
        sprintf(szbuf,"        ");
		pDC->TextOut(Glob_Grid_Left[5]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
		pDC->TextOut(Glob_Grid_Left[6]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
	}
	else
	{
        aps	= aps1 + no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;
        code_name_tab= code_name_tab1+ no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;
        	 
	    sprintf(szbuf,"%d",no_add_tab->psNo);
    	pDC->TextOut(Glob_Grid_Left[0]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
	    pDC->TextOut(Glob_Grid_Left[1]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,aps->psCode);
	    pDC->TextOut(Glob_Grid_Left[2]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,code_name_tab->psName);
        pDC->TextOut(Glob_Grid_Left[4]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,aps->sysUnit);
        if (aps->alrmHl<99999.0)
		{ 
          if (abs(aps->alrmHl)>1000) 
             sprintf(szbuf,"%-7.0f",aps->alrmHl);
		  else  if (abs(aps->alrmHl)>100) 
             sprintf(szbuf,"%-7.1f",aps->alrmHl);
		  else if (abs(aps->alrmHl)>10) 
             sprintf(szbuf,"%-7.2f",aps->alrmHl);
		  else 
	         sprintf(szbuf,"%-7.3f",aps->alrmHl);
	    }
	    else
	    {
	      sprintf(szbuf,"      ");
	    }
        if (strstr(m_sPointCode,aps->psCode)!=NULL) 
		{
	 	         char temp[32];
			    // sprintf(temp,"-%s",szbuf);
			     //sprintf(szbuf,"%s",temp);
		}
	    pDC->TextOut(Glob_Grid_Left[5]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
        
		if ((aps->alrmLl)>-99999) 
		{
           if (abs(aps->alrmLl)>1000) 
             sprintf(szbuf,"%-7.0f",aps->alrmLl);
		   else  if (abs(aps->alrmLl)>100) 
             sprintf(szbuf,"%-7.1f",aps->alrmLl);
		   else if (abs(aps->alrmLl)>10) 
             sprintf(szbuf,"%-7.2f",aps->alrmLl);
		   else 
	         sprintf(szbuf,"%-7.3f",aps->alrmLl);
        }
	    else sprintf(szbuf,"      ");	  
		if (strstr(m_sPointCode,aps->psCode)!=NULL) 
		{
                 char temp[32];
			     //sprintf(temp,"-%s",szbuf);
			     //sprintf(szbuf,"%s",temp);
		}
	    pDC->TextOut(Glob_Grid_Left[6]+5,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);
	}
  }
  pDC->SelectObject(oldFont);
}

void COperatView::Def_Draw_AnavalDynamicData(CDC* pDC)
{
  char Loc_Str_St[4][12]={" 正  常  "," 越  限  "," 系统错 ","       "};
  char szbuf[32];	
  CFont *oldFont;
  COLORREF preColor;
  oldFont=pDC->SelectObject(&m_TableFont);

  for(int i=0;i<rows_Page;i++)
  {
	if (m_nCurSystem==0) no_add_tab	= no_add_tab1+curTask*rows_Page+i+1; 
	else no_add_tab	= no_add_tab1+MAX_TURBINE+curTask*rows_Page+i+1;
    if((no_add_tab->add<1)||(no_add_tab->add>(MAX_ADNUM+2))) continue;
    if((no_add_tab->ch<1)||(no_add_tab->ch>MAX_CHNUM)) continue;  
	if (no_add_tab->add>MAX_ADNUM)
	{
          aps	= aps1 + no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch; 	 
	        if (aps->Speed_Type==0)
			{
              sprintf(szbuf,"%7.1f",aps->anaVal);
			}
		    else
			{
			  if (fabs(aps->sysTop-aps->sysBot)>=1000) 
                 sprintf(szbuf,"%7.0f",aps->anaVal);
		      else  if (fabs(aps->sysTop-aps->sysBot)>=100) 
                 sprintf(szbuf,"%7.1f",aps->anaVal);
		      else if (fabs(aps->sysTop-aps->sysBot)>=1.0) 
                 sprintf(szbuf,"%7.2f",aps->anaVal);
		      else 
	             sprintf(szbuf,"%7.3f",aps->anaVal);
			}
			strcat(szbuf,"  ");
      pDC->TextOut(Glob_Grid_Left[3]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);	 
	 // sprintf(szbuf,"        ");
      pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,Loc_Str_St[3]);
	}
	else
	{
        aps	= aps1 + no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch; 	 
	    //sprintf(szbuf,"%7.2f    ",aps->anaVal);
		    if (strstr(m_sPointCode,aps->psCode)!=NULL)  //取反
			{
                 aps->anaVal=-aps->anaVal;
			}
		    if (aps->Speed_Type==0)
			{
              sprintf(szbuf,"%7.1f",aps->anaVal);
			}
		    else
			{
			  if (fabs(aps->sysTop-aps->sysBot)>=1000) 
                 sprintf(szbuf,"%7.0f",aps->anaVal);
		      else  if (fabs(aps->sysTop-aps->sysBot)>=100) 
                 sprintf(szbuf,"%7.1f",aps->anaVal);
		      else if (fabs(aps->sysTop-aps->sysBot)>=1.0) 
                 sprintf(szbuf,"%7.2f",aps->anaVal);
		      else 
	             sprintf(szbuf,"%7.3f",aps->anaVal);
			}  
	
		 if (strstr(m_sPointCode,aps->psCode)!=NULL)  //取反恢复
		 {  
                 aps->anaVal=-aps->anaVal;
		 }
		 strcat(szbuf,"    ");
		 if (aps->st>0)
		 { 
           preColor=pDC->SetTextColor(RGB(255,0,0));
           pDC->TextOut(Glob_Grid_Left[3]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);	 
		   pDC->SetTextColor(preColor);
		 }
		 else if (aps->st<0)
		 {
           sprintf(szbuf,"*******  ");
           pDC->TextOut(Glob_Grid_Left[3]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);	 
		 }
		 else
		 {
			 pDC->TextOut(Glob_Grid_Left[3]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,szbuf);	 
		 }

           if(aps->st==0)
		   {     
	          pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2," 正  常  ");
			}
			else
			{
				preColor=pDC->SetTextColor(RGB(255,0,0));
				if(aps->st>0) 
				{
				   pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2," 越  限  ");
				}
				else
				{
					if(aps->st<0)
					{
                      if(aps->st==-26)
					  { 
                        pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,"通讯卡错");
					  }
					  else  if(aps->st==-27)
					  { 
                        pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2," 通讯错   ");
					  }
					  else  if(aps->st==-28)
					  { 
                        pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2,"前置机错");
					  }
					  else 
					  {
					    pDC->TextOut(Glob_Grid_Left[7]+10,Glob_Grid_Rect.top+(i+1)*Glob_Grid_LineHeight+2," 系统错   ");
					  }
					}

				}
			    pDC->SetTextColor(preColor);
			}  			   	 
	}
  }
  pDC->SelectObject(oldFont);
}

void COperatView::Def_Draw_AnavalGrid(CDC *pDC)
{
   sprintf(fieldName," 表  格  显  示");
    if (Glob_CurError_Adr>0)sprintf(fieldName,"#%d前置机出错     ",Glob_CurError_Adr);
    CPen *oldpen = pDC->SelectObject(&blackPen2);
	pDC->SelectStockObject(WHITE_BRUSH);
	pDC->Rectangle(&Glob_Grid_Rect);
	CRect dispRect,Local_Client_Rect;
	GetClientRect(&Local_Client_Rect);
	
    dispRect.SetRect(5,(data_y0+2),Local_Client_Rect.right-5,(Local_Client_Rect.bottom-key_y0-2));
	int  disc=(dispRect.bottom-dispRect.top)/(rows_Page+1);
	 	 
	char szlist[8][16] = {"序 号","  编 号"," 测 点 名 称","  当 前 值","  单  位","  上  限","  下  限","测点状态"};
	 
    for(int i=0;i<8;i++)
	{
	  pDC->MoveTo(Glob_Grid_Left[i] , Glob_Grid_Rect.top);
	  pDC->LineTo(Glob_Grid_Left[i] , Glob_Grid_Rect.bottom);
	  pDC->TextOut(Glob_Grid_Left[i]+5 , Glob_Grid_Rect.top+2,szlist[i]);
	}
    for( i=1;i<rows_Page+2;i++)
	{
		pDC->MoveTo(Glob_Grid_Rect.left , Glob_Grid_Rect.top+i*Glob_Grid_LineHeight);
		pDC->LineTo(Glob_Grid_Rect.right, Glob_Grid_Rect.top+i*Glob_Grid_LineHeight);
   }
   pDC->SelectObject(oldpen);
}

void COperatView::Def_Draw_PlateStaticData(CDC *pDC)
{
    int pageNum = menuNums;
	char	szbuf[60];

	if(curTask == (pageNum-1)) return;
	int curPage;
	if(curTask == (pageNum-2))
	{
	    if (m_nCurSystem==1) curPage = (plate_disp.nGeneratorplateNum-1)%6+1;
		else  curPage = (plate_disp.nTurbineplateNum-1)%6+1;
	}
	else curPage = 6;

    short nOldCurTask=curTask;
	if (m_nCurSystem==1) curTask=curTask+10;
	sprintf(fieldName," 表  盘  显  示");
    if (Glob_CurError_Adr>0)sprintf(fieldName,"#%d前置机出错     ",Glob_CurError_Adr);

⌨️ 快捷键说明

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