📄 煤气取样过程计算机模拟view.cpp
字号:
// 煤气取样过程计算机模拟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 + -