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

📄 煤气取样过程计算机模拟view.cpp

📁 本程序是利用VC开发的炼钢炉煤气取样过程的图形化监控程序。界面中的自动演示按钮可以演示整个取样过程。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
// 煤气取样过程计算机模拟View.cpp : implementation of the CMyView class
//

#include "stdafx.h"
#include "煤气取样过程计算机模拟.h"

#include "煤气取样过程计算机模拟Doc.h"
#include "煤气取样过程计算机模拟View.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define READDATACODE  _T("@00RD00020016")
#define WRITEDATACODE0 _T("@00WD0000")
#define WRITEDATACODE1 _T("@00WD0001")

HMENU hMenu;
HWND  hWnd;

CDC *pDC;


CBitmap BitBMP1,BitBMP2,BitBMP3,BitBMP4,BitBMP5,BitBMP6;
CBitmap BitBMP7,BitBMP8,BitBMP9,BitBMP10,BitBMP11,BitBMP12;
CBitmap BitBMP13,BitBMP14,BitBMP15,BitBMP16,BitBMP17,BitBMP18,BitBMP19,BitBMP20;

int FirstRun=1;
CPen *pOldPen,Pen1,Pen2;
CBrush *pOldBrush,Brush1,Brush2;

int PipeHead_X=663;
int PipeHead_X1;
int Pipe_X=189;
int Pipe_X1=187;

int F2gas_X=90;
int F2gas_X1=88;
int F2gas_Y=131;
int F2gas_Y1=129;

int F2_region1=1;
int F2_region2=0;
int F2_region3=0;

int F2gas4_X=589;
int F2gas4_Y=426;
int F2gas4_Y1;
///////////////
int F3gas_X=90;
int F3gas_X1=88;
int F3gas_Y=97;
int F3gas_Y1=95; 

int F3_region1=1;
int F3_region2=0;
int F3_region3=0;
int F3_region4=0;
///////////////
int F1gas_X=90;
int F1gas_X1=88;
int F1gas_Y=63;
int F1gas_Y1=61;

int F1_region1=1;
int F1_region2=0;
int F1_region3=0;
//////////////////
int F4gas_X=90;
int F4gas_X1=88;
int F4gas_Y=30;
int F4gas_Y1=28;

int F4_region1=1;
int F4_region2=0;
int F4_region3=0;
int F4_region4=0;
int F4_region5=0;

int F11gas_X=88;
int F11gas_X1=86;
int F11gas_Y=163;
int F11gas_Y1=161;

int F11_region1=1;
int F11_region2=0;
int F11_region3=0;
int F11_region4=0;
int F11_region5=0;

//F5 capture gas
int F5gas_X=PipeHead_X-30;
int F5gas_X1=F5gas_X+18;
int F5gas_Y=460;
int F5gas_Y1;

//F5 analysi gas
int F5gas1_X=67;
int F5gas1_Y=488;
int F5gas1_Y1=486;


int F5_region1=1;
int F5_region2=0;
int F5_region3=0;
int F5_region4=0;

int BallVa_showCoun=0;


CString m_readPLCdata,m_writePLCdata;

bool ReadORWrite_plc=TRUE;

int NearFire_X1=0;
int FarFire_X2=0;
int Ball_X3=0;
int SweepValve_F1=0;
int PreventValve_F2=0;
int AirProofValve_F3=0;
int BallValve_F4=0;
int CaptureValve_F5=0;
int AntiSweepValve_F11=0;
int AirValve_F17=0;
int CaptureStart=0;
int AnalysisStart=0;
int AutoRun=0;
int HandRun=0;
int MotorForward=0;
int MotorBackward=0;

int AutoDisp=0;
unsigned long InitTime;
int Step1=0;
int Step2=0;
int Step3=0;
int Step4=0;
int Step5=0;
int Step67=0;
int Step8=0;
int Step9=0;
int Step10=0;
int Step11=0;

/////////////////////////////////////////////////////////////////////////////
// CMyView

IMPLEMENT_DYNCREATE(CMyView, CFormView)

BEGIN_MESSAGE_MAP(CMyView, CFormView)
	//{{AFX_MSG_MAP(CMyView)
	ON_WM_TIMER()
	ON_COMMAND(ID_LIVESTARTMENU, OnLivestartmenu)
	ON_COMMAND(ID_LIVESTOPMENU, OnLivestopmenu)
	ON_COMMAND(ID_REMOTESTARTMENU, OnRemotestartmenu)
	ON_COMMAND(ID_REMOTESTOPMENU, OnRemotestopmenu)
	ON_BN_CLICKED(IDC_BUTTON17, OnExitButton17)
	ON_WM_CLOSE()
	ON_BN_CLICKED(IDC_BUTTON18, OnButton18)
	ON_COMMAND(ID_X3ON, OnX3on)
	ON_COMMAND(ID_X3OFF, OnX3off)
	ON_COMMAND(ID_F1ON, OnF1on)
	ON_COMMAND(ID_F1OFF, OnF1off)
	ON_COMMAND(ID_F2ON, OnF2on)
	ON_COMMAND(ID_F2OFF, OnF2off)
	ON_COMMAND(ID_F3ON, OnF3on)
	ON_COMMAND(ID_F3OFF, OnF3off)
	ON_COMMAND(ID_F4ON, OnF4on)
	ON_COMMAND(ID_F4OFF, OnF4off)
	ON_COMMAND(ID_F5ON, OnF5on)
	ON_COMMAND(ID_F5OFF, OnF5off)
	ON_COMMAND(ID_F11ON, OnF11on)
	ON_COMMAND(ID_F11OFF, OnF11off)
	ON_COMMAND(ID_F17ON, OnF17on)
	ON_COMMAND(ID_F17OFF, OnF17off)
	ON_COMMAND(ID_CAPTUREON, OnCaptureon)
	ON_COMMAND(ID_CAPTUREOFF, OnCaptureoff)
	ON_COMMAND(ID_ANALYSISON, OnAnalysison)
	ON_COMMAND(ID_AUTOON, OnAutoon)
	ON_COMMAND(ID_AUTOOFF, OnAutooff)
	ON_COMMAND(ID_HANDON, OnHandon)
	ON_COMMAND(ID_HANDOFF, OnHandoff)
	ON_COMMAND(ID_MOTORFORWARDON, OnMotorforwardon)
	ON_COMMAND(ID_MOTORFORWARDOFF, OnMotorforwardoff)
	ON_COMMAND(ID_MOTORBACKON, OnMotorbackon)
	ON_COMMAND(ID_MOTORBACKOFF, OnMotorbackoff)
	ON_COMMAND(ID_ANALYSISOFF, OnAnalysisoff)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyView construction/destruction

CMyView::CMyView()
	: CFormView(CMyView::IDD)
{
	//{{AFX_DATA_INIT(CMyView)
	//}}AFX_DATA_INIT
   // TODO: add construction code here
}

CMyView::~CMyView()
{
}

void CMyView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyView)
	DDX_Control(pDX, IDC_MSCOMM1, m_OnCom1);
	//}}AFX_DATA_MAP
}

BOOL CMyView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CFormView::PreCreateWindow(cs);
}

void CMyView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

   // CSplashWnd::ShowSplashScreen(this);

//	Sleep(2000);

	SetTimer(1,50,NULL);
	SetTimer(2,250,NULL);
    SetTimer(3,300,NULL);
	SetTimer(4,1000,NULL);
    
	if (!m_OnCom1.GetPortOpen())
        m_OnCom1.SetPortOpen(TRUE);

	m_OnCom1.SetInBufferCount(0);
	m_OnCom1.SetOutBufferCount(0);
		
}

/////////////////////////////////////////////////////////////////////////////
// CMyView diagnostics

#ifdef _DEBUG
void CMyView::AssertValid() const
{
	CFormView::AssertValid();
}

void CMyView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CMyDoc* CMyView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc)));
	return (CMyDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMyView message handlers

void CMyView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
/////
//if(AnalysisStart==1)
//{
   
 /*     KillTimer(1);
	  KillTimer(2);
	  KillTimer(3);
	  KillTimer(4);
	
	  if (m_OnCom1.GetPortOpen())
	  m_OnCom1.SetPortOpen(FALSE);

	  Brush1.DeleteObject();
      Pen1.DeleteObject();
	  Brush2.DeleteObject();
      Pen2.DeleteObject();

	  pDC->SelectObject(pOldBrush);
      pDC->SelectObject(pOldPen);

      BitBMP1.DeleteObject();
	  BitBMP2.DeleteObject();
	  BitBMP3.DeleteObject();
	  BitBMP4.DeleteObject();
	  BitBMP5.DeleteObject();
	  BitBMP6.DeleteObject();
	  BitBMP7.DeleteObject();
	  BitBMP8.DeleteObject();
	  BitBMP9.DeleteObject();
	  BitBMP10.DeleteObject();
	  BitBMP11.DeleteObject();
	  BitBMP12.DeleteObject();
	  BitBMP13.DeleteObject();
	  BitBMP14.DeleteObject();
	  BitBMP15.DeleteObject();
	  BitBMP16.DeleteObject();
	  BitBMP17.DeleteObject();
	  BitBMP18.DeleteObject();
	  BitBMP19.DeleteObject();
	  BitBMP20.DeleteObject();
	  
	  if(pDC!=NULL) ReleaseDC(pDC);

	  ::WinExec("D:\\mqcj\\mq.exe",SW_SHOW);
	  ExitProcess(0);   
*/        
//}
//else /////
//{	
    //CDC * pDC;
  pDC=GetDC();

  CDC ImageDC;
  ImageDC.CreateCompatibleDC(pDC);

  //CBitmap *pOldImageBMP=ImageDC.SelectObject(&BitBMP1);

  if(FirstRun==1) 
  {
	pOldBrush=(CBrush*)pDC->SelectObject(&Brush2);
    pOldPen=(CPen*)pDC->SelectObject(&Pen2);
		
	FirstRun++;
  }

/////
  if(nIDEvent==1) //定时器1 show light and gas
  {
   //show remote or live control light
    if(NearFire_X1==1)
	{
      ImageDC.SelectObject(&BitBMP5);
      BitBlt(pDC->m_hDC, 160, 610, 48, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
      ImageDC.SelectObject(&BitBMP6);
      BitBlt(pDC->m_hDC, 275, 610, 48, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
	}
    else
	{
      ImageDC.SelectObject(&BitBMP6);
      BitBlt(pDC->m_hDC, 160, 610, 48, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
      ImageDC.SelectObject(&BitBMP5);
      BitBlt(pDC->m_hDC, 275, 610, 48, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
	}

//show capture light
    if(CaptureStart==1)
	{
      ImageDC.SelectObject(&BitBMP5);
	}
    else
	{
	  ImageDC.SelectObject(&BitBMP6);
	}
    BitBlt(pDC->m_hDC, 385, 610, 48, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);

//show analysis light
    if(AnalysisStart==1)
	{
      ImageDC.SelectObject(&BitBMP5);
	}
    else
	{
	  ImageDC.SelectObject(&BitBMP6);
	}
    BitBlt(pDC->m_hDC, 497, 610, 48, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);

//show autorun light
    if(AutoRun==1)
	{
      ImageDC.SelectObject(&BitBMP5);
	}
    else
	{
	  ImageDC.SelectObject(&BitBMP6);
	}
    BitBlt(pDC->m_hDC, 609, 610, 48, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);

//show handrun light
    if(HandRun==1)
	{
      ImageDC.SelectObject(&BitBMP5);
	}
    else
	{
	  ImageDC.SelectObject(&BitBMP6);
	}
    BitBlt(pDC->m_hDC, 721, 610, 48, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);

//F1_GAS
    ShowF1Gas();

//F11_GAS
    ShowF11Gas();

//F4、F17_gas
    ShowF4Gas();

//F2 gas
    ShowF2Gas();

//F3_gas
    ShowF3Gas();

//F5_gas capture
    if(CaptureStart==1) ShowF5CaptureGas();
    else
	{
	    F5gas_X=PipeHead_X-30;
        F5gas_X1=F5gas_X+18;
        F5gas_Y=460;
		
		F5_region1=1;
        F5_region2=0;
		F5_region3=0;
		F5_region4=0;
	}

//F5_gas analysis
    if(AnalysisStart==1) ShowF5AnalysisGas();
    else
	{
       // ImageDC.SelectObject(&BitBMP16);
       // BitBlt(pDC->m_hDC, F5gas1_X, F5gas1_Y, 4, 4, ImageDC.m_hDC, 0, 0, SRCCOPY);
	   
        F5gas1_X=68;
        F5gas1_Y=488;
        F5gas1_Y1=486;
	}

//restore show hided line
    ImageDC.SelectObject(&BitBMP17);

    if(Ball_X3==0)
	{
      BitBlt(pDC->m_hDC, 642, 435, 1, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
      BitBlt(pDC->m_hDC, 642, 468, 1, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
      BitBlt(pDC->m_hDC, 689, 465, 1, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
      BitBlt(pDC->m_hDC, 689, 438, 1, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
      BitBlt(pDC->m_hDC, 769, 450, 1, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
      BitBlt(pDC->m_hDC, 811, 454, 1, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
	}

 }

/////
  if(nIDEvent==2)//timer2 show ballvalve,fireplace,pipe,valve,pipefill
  {

//	SendDataOnCom1();
//    PLCDataProcess();

	ShowBallValve();
	
   //ShowFirePlace

    if(MotorBackward==1)
	{
	  ImageDC.SelectObject(&BitBMP4);
      BitBlt(pDC->m_hDC, 812, 425, 201, 145, ImageDC.m_hDC, 0, 0, SRCCOPY);
	}

	//ShowCapturePipe
	if(MotorForward!=MotorBackward)
	{
	  if(MotorForward==1)
	  {
	    ShowPipeHeadForward();
	    ShowPipeForward();
	  }
    
	  if(MotorBackward==1)
	  {
	    ShowPipeHeadBackward();
        ShowPipeBackward();
	  }
	}
   else
   {
    //show pipe and pipe head
     ImageDC.SelectObject(&BitBMP7);
     BitBlt(pDC->m_hDC, Pipe_X, 455, 474, 15, ImageDC.m_hDC, 0, 0, SRCCOPY);
     ImageDC.SelectObject(&BitBMP3);
     BitBlt(pDC->m_hDC, PipeHead_X, 455, 27, 15, ImageDC.m_hDC, 0, 0, SRCCOPY);
	}
 
//show F11 and F5 pipe fill
    if(AntiSweepValve_F11==1) 
    {
	  (*pDC).SelectObject(&Brush1);
      (*pDC).SelectObject(&Pen1);
	}
    else
    {   
      (*pDC).SelectObject(&Brush2);
      (*pDC).SelectObject(&Pen2);
	}
      
	  //F11_region1
      (*pDC).Rectangle(78,163,113,167); 
	  //F11_region2
      (*pDC).Rectangle(108,167,113,367); 
	  	  
	  if((AntiSweepValve_F11==1)||((CaptureValve_F5==1)&&(CaptureStart==1)))
	  {	      
		(*pDC).SelectObject(&Brush1);
        (*pDC).SelectObject(&Pen1);
	  }
	  else
	  {
        (*pDC).SelectObject(&Brush2);
        (*pDC).SelectObject(&Pen2);
	  }
	 	  
	  //F11_region3 and F5_region3
      (*pDC).Rectangle(107,367,154,372); 
      
	  //F11_region4 and F5_region2
      (*pDC).Rectangle(149,367,154,407);
	  
	  //F11_region5 and F5_region1
	  (*pDC).Rectangle(164,460,Pipe_X,464);
      (*pDC).Rectangle(Pipe_X+1,460,Pipe_X+473,464);    
	  	  
      if((CaptureValve_F5==1)&&(CaptureStart==1))
	  {

⌨️ 快捷键说明

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