📄 煤气取样过程计算机模拟view.cpp
字号:
if(atoi(string1.Mid(31,4))==0) BallValve_F4=0;
else BallValve_F4=1;
if(atoi(string1.Mid(35,4))==0) CaptureValve_F5=0;
else CaptureValve_F5=1;
if(atoi(string1.Mid(39,4))==0) AntiSweepValve_F11=0;
else AntiSweepValve_F11=1;
if(atoi(string1.Mid(43,4))==0) AirValve_F17=0;
else AirValve_F17=1;
if(atoi(string1.Mid(47,4))==0) CaptureStart=0;
else CaptureStart=1;
if(atoi(string1.Mid(51,4))==0) AnalysisStart=0;
else AnalysisStart=1;
if(atoi(string1.Mid(55,4))==0) AutoRun=0;
else AutoRun=1;
if(atoi(string1.Mid(59,4))==0) HandRun=0;
else HandRun=1;
if(atoi(string1.Mid(63,4))==0) MotorForward=0;
else MotorForward=1;
if(atoi(string1.Mid(67,4))==0) MotorBackward=0;
else MotorBackward=1;
m_OnCom1.SetInBufferCount(0);
}
}
if ((c=strlen(buff)) == 0) //power shut off
{
/*NearFire_X1=0;
FarFire_X2=0;
//Ball_X3=0;
SweepValve_F1=0;
PreventValve_F2=0;
AirProofValve_F3=0;
BallValve_F4=0;
CaptureValve_F5=0;
AntiSweepValve_F11=0;
AirValve_F17=0;
CaptureStart=0;
AnalysisStart=0;
AutoRun=0;
HandRun=0;
MotorForward=0;
MotorBackward=0;
*/
}
m_readPLCdata.Empty();
}
}
BOOL CMyView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
//加密段
/* unsigned long a,b;
CString str;
str="c:\\win98.txt";
FILE *fp;
fp=fopen(str,"r");
fscanf(fp,"%d",&a);
fclose(fp);
str="c:\\winnt.txt";
fp=fopen(str,"r");
fscanf(fp,"%d",&b);
fclose(fp);
if(b>a)
{
ExitWindowsEx(EWX_REBOOT,0);
}
else
{
b++;
fp=fopen(str,"w");
fprintf(fp,"%d",b);
fclose(fp);
}
*/
////////////////////////
hWnd=pParentWnd->GetSafeHwnd();
hMenu=::GetMenu(hWnd);
EnableMenuItem(hMenu,ID_LIVESTOPMENU,MF_GRAYED);
EnableMenuItem(hMenu,ID_REMOTESTOPMENU,MF_GRAYED);
// EnableMenuItem(hMenu,ID_LIVESTARTMENU,MF_GRAYED);
// EnableMenuItem(hMenu,ID_REMOTESTARTMENU,MF_GRAYED);
Brush1.CreateSolidBrush(0x0000ffff);
Pen1.CreatePen(PS_SOLID,0,0x0000ffff);
Brush2.CreateSolidBrush(0x00000000);
Pen2.CreatePen(PS_SOLID,0,RGB(0,0,0));
BitBMP1.LoadBitmap(IDB_VALVEBITMAP5);//green valve
BitBMP2.LoadBitmap(IDB_VALVEBITMAP6);//red valve
BitBMP3.LoadBitmap(IDB_BITMAP10);//pipe head
BitBMP4.LoadBitmap(IDB_FIREBITMAP22);//fireplace
BitBMP5.LoadBitmap(IDB_CAPTUREGREENLIGHT);//capture green light
BitBMP6.LoadBitmap(IDB_CAPTUREREDLIGHT);//capture red light
BitBMP7.LoadBitmap(IDB_BITMAP13);//pipe
BitBMP8.LoadBitmap(IDB_BITMAP20);//ball valve close
BitBMP9.LoadBitmap(IDB_BITMAP21);//ball valve open
BitBMP10.LoadBitmap(IDB_BITMAP2);// vertical red gas
BitBMP11.LoadBitmap(IDB_BITMAP18);//horizontal red gas
BitBMP12.LoadBitmap(IDB_BITMAP8);//horizontal hide gas
BitBMP13.LoadBitmap(IDB_BITMAP14);//vertical hide gas
BitBMP14.LoadBitmap(IDB_BITMAP3);//horizontal whole hide gas
BitBMP15.LoadBitmap(IDB_BITMAP19);//vertical whole hide gas
BitBMP16.LoadBitmap(IDB_ANALYSISWHOLEHIDE);//analysis whole hide gas
BitBMP17.LoadBitmap(IDB_BITMAP17);//restored hide line
BitBMP18.LoadBitmap(IDB_ANALYSISGAS);//analysis gas
BitBMP19.LoadBitmap(IDB_BITMAP12);//pipe hide
BitBMP20.LoadBitmap(IDB_PIPEHEADHIDE22);//pipe hide
return CFormView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
}
void CMyView::OnLivestartmenu()
{
// TODO: Add your command handler code here
if(ReadORWrite_plc) ReadORWrite_plc=FALSE;
CString string1="";
char buff[1024];
memset(&buff,0,sizeof(buff));
m_OnCom1.SetInBufferCount(0);
m_OnCom1.SetOutBufferCount(0);
m_writePLCdata.Empty();
m_writePLCdata=WRITEDATACODE0;
m_writePLCdata+="0001";
string1=FCS(m_writePLCdata);
m_writePLCdata+=string1;
strcpy((LPSTR)buff,m_writePLCdata);
buff[strlen(buff)] = 42;
buff[strlen(buff)] = 13;
m_OnCom1.SetOutput(COleVariant((LPSTR)buff));
EnableMenuItem(hMenu,ID_LIVESTARTMENU,MF_GRAYED);
EnableMenuItem(hMenu,ID_LIVESTOPMENU,MF_ENABLED);
if(!ReadORWrite_plc) ReadORWrite_plc=TRUE;
}
void CMyView::OnLivestopmenu()
{
// TODO: Add your command handler code here
if(ReadORWrite_plc) ReadORWrite_plc=FALSE;
CString string1="";
char buff[1024];
memset(&buff,0,sizeof(buff));
m_OnCom1.SetInBufferCount(0);
m_OnCom1.SetOutBufferCount(0);
m_writePLCdata.Empty();
m_writePLCdata=WRITEDATACODE0;
m_writePLCdata+="0000";
string1=FCS(m_writePLCdata);
m_writePLCdata+=string1;
strcpy((LPSTR)buff,m_writePLCdata);
buff[strlen(buff)] = 42;
buff[strlen(buff)] = 13;
m_OnCom1.SetOutput(COleVariant((LPSTR)buff));
EnableMenuItem(hMenu,ID_LIVESTARTMENU,MF_ENABLED);
EnableMenuItem(hMenu,ID_LIVESTOPMENU,MF_GRAYED);
if(!ReadORWrite_plc) ReadORWrite_plc=TRUE;
}
void CMyView::OnRemotestartmenu()
{
// TODO: Add your command handler code here
if(ReadORWrite_plc) ReadORWrite_plc=FALSE;
CString string1="";
char buff[1024];
memset(&buff,0,sizeof(buff));
m_OnCom1.SetInBufferCount(0);
m_OnCom1.SetOutBufferCount(0);
m_writePLCdata.Empty();
m_writePLCdata=WRITEDATACODE1;
m_writePLCdata+="0001";
string1=FCS(m_writePLCdata);
m_writePLCdata+=string1;
strcpy((LPSTR)buff,m_writePLCdata);
buff[strlen(buff)] = 42;
buff[strlen(buff)] = 13;
m_OnCom1.SetOutput(COleVariant((LPSTR)buff));
EnableMenuItem(hMenu,ID_REMOTESTARTMENU,MF_GRAYED);
EnableMenuItem(hMenu,ID_REMOTESTOPMENU,MF_ENABLED);
if(!ReadORWrite_plc) ReadORWrite_plc=TRUE;
}
void CMyView::OnRemotestopmenu()
{
// TODO: Add your command handler code here
if(ReadORWrite_plc) ReadORWrite_plc=FALSE;
CString string1="";
char buff[1024];
memset(&buff,0,sizeof(buff));
m_OnCom1.SetInBufferCount(0);
m_OnCom1.SetOutBufferCount(0);
m_writePLCdata.Empty();
m_writePLCdata=WRITEDATACODE1;
m_writePLCdata+="0000";
string1=FCS(m_writePLCdata);
m_writePLCdata+=string1;
strcpy((LPSTR)buff,m_writePLCdata);
buff[strlen(buff)] = 42;
buff[strlen(buff)] = 13;
m_OnCom1.SetOutput(COleVariant((LPSTR)buff));
EnableMenuItem(hMenu,ID_REMOTESTARTMENU,MF_ENABLED);
EnableMenuItem(hMenu,ID_REMOTESTOPMENU,MF_GRAYED);
if(!ReadORWrite_plc) ReadORWrite_plc=TRUE;
}
////
void CMyView::ShowPipeHeadForward()
{
CDC * pDC;
pDC=GetDC();
/*CBitmap BitBMP1;
BitBMP1.LoadBitmap(IDB_BITMAP10);//pipe head
*/
CDC ImageDC;
ImageDC.CreateCompatibleDC(pDC);
PipeHead_X=Pipe_X+474;
if(PipeHead_X<974) PipeHead_X=PipeHead_X+2;
ImageDC.SelectObject(&BitBMP3);
BitBlt(pDC->m_hDC, PipeHead_X, 455, 27, 15, ImageDC.m_hDC, 0, 0, SRCCOPY);
ReleaseDC(pDC);
ImageDC.DeleteDC();
}
////
void CMyView::ShowPipeHeadBackward()
{
CDC * pDC;
pDC=GetDC();
/*CBitmap BitBMP1,BitBMP2,BitBMP3;
BitBMP1.LoadBitmap(IDB_BITMAP10);//pipe head
//BitBMP2.LoadBitmap(IDB_BITMAP11);//pipe head mask
BitBMP3.LoadBitmap(IDB_PIPEHEADHIDE22);//green hide pipe
CDC ImageDC,ImageMaskDC;*/
CDC ImageDC;
ImageDC.CreateCompatibleDC(pDC);
//ImageMaskDC.CreateCompatibleDC(pDC);
if(PipeHead_X>663)
{
PipeHead_X1=PipeHead_X+25;
PipeHead_X=PipeHead_X-2;
}
//show pipe head
//MASK
ImageDC.SelectObject(&BitBMP3);
//ImageMaskDC.SelectObject(&BitBMP2);
//BitBlt(ImageDC.m_hDC, 0, 0, 25, 32, ImageMaskDC.m_hDC, 0, 0, SRCAND);
//BitBlt(pDC->m_hDC, PipeHead_X, 374, 25, 32, ImageMaskDC.m_hDC, 0, 0, 0x220326);
//BitBlt(pDC->m_hDC, PipeHead_X, 374, 25, 32, ImageDC.m_hDC, 0, 0, SRCPAINT);
BitBlt(pDC->m_hDC, PipeHead_X, 455, 27, 15, ImageDC.m_hDC, 0, 0, SRCCOPY);
//use hide
ImageDC.SelectObject(&BitBMP20);
BitBlt(pDC->m_hDC, PipeHead_X1, 455, 2, 15, ImageDC.m_hDC, 0, 0, SRCCOPY);
ReleaseDC(pDC);
ImageDC.DeleteDC();
}
////
void CMyView::ShowPipeForward()
{
CDC * pDC;
pDC=GetDC();
/*CBitmap BitBMP1,BitBMP2,BitBMP3;
BitBMP1.LoadBitmap(IDB_BITMAP13);//pipe
BitBMP2.LoadBitmap(IDB_BITMAP12);//hide pipe
*/
CDC ImageDC;
ImageDC.CreateCompatibleDC(pDC);
if(Pipe_X<500)
{
Pipe_X1=Pipe_X;
Pipe_X=Pipe_X+2;
}
//show pipe
ImageDC.SelectObject(&BitBMP7);
BitBlt(pDC->m_hDC, Pipe_X, 455, 474, 15, ImageDC.m_hDC, 0, 0, SRCCOPY);
//hide
ImageDC.SelectObject(&BitBMP19);//use hide
BitBlt(pDC->m_hDC, Pipe_X1, 455, 2, 15, ImageDC.m_hDC, 0, 0, SRCCOPY);
ReleaseDC(pDC);
ImageDC.DeleteDC();
}
void CMyView::ShowPipeBackward()
{
CDC * pDC;
pDC=GetDC();
//CBitmap BitBMP1;
//BitBMP1.LoadBitmap(IDB_BITMAP13);//pipe
CDC ImageDC;
ImageDC.CreateCompatibleDC(pDC);
if(Pipe_X>189)
{
Pipe_X=Pipe_X-2;
}
//show pipe
ImageDC.SelectObject(&BitBMP7);
BitBlt(pDC->m_hDC, Pipe_X, 455, 474, 15, ImageDC.m_hDC, 0, 0, SRCCOPY);
ReleaseDC(pDC);
ImageDC.DeleteDC();
}
void CMyView::ShowF4Gas()
{
////F4、F17_gas
CDC * pDC;
pDC=GetDC();
/*CBitmap BitBMP10,BitBMP11,BitBMP12,BitBMP13,BitBMP14,BitBMP15;
BitBMP10.LoadBitmap(IDB_BITMAP2);// vertical red gas
BitBMP11.LoadBitmap(IDB_BITMAP18);//horizontal red gas
BitBMP12.LoadBitmap(IDB_BITMAP8);//horizontal hide gas
BitBMP14.LoadBitmap(IDB_BITMAP3);//horizontal whole hide gas
BitBMP13.LoadBitmap(IDB_BITMAP14);//vertical hide gas
BitBMP15.LoadBitmap(IDB_BITMAP19);//vertical whole hide gas
*/
CDC ImageDC;
ImageDC.CreateCompatibleDC(pDC);
//if((AirValve_F17==1)&&(BallValve_F4==1)) //球阀打开
if(AirValve_F17==1)
{
if(F4_region1==1) //region1
{
F4gas_X1=F4gas_X;
F4gas_X=F4gas_X+2;
//horizontal and hide
ImageDC.SelectObject(&BitBMP11);
BitBlt(pDC->m_hDC, F4gas_X, F4gas_Y, 20, 4, ImageDC.m_hDC, 0, 0, SRCCOPY);
ImageDC.SelectObject(&BitBMP12);
BitBlt(pDC->m_hDC, F4gas_X1, F4gas_Y, 2, 4, ImageDC.m_hDC, 0, 0, SRCCOPY);
if(F4gas_X>=710)
{
F4_region1=0;
F4_region2=1;
F4_region3=0;
F4_region4=0;
F4_region5=0;
//special process
ImageDC.SelectObject(&BitBMP14);
BitBlt(pDC->m_hDC, F4gas_X,F4gas_Y, 20, 4, ImageDC.m_hDC, 0, 0, SRCCOPY);
F4gas_X=728;
}
}
if(F4_region2==1) //region2
{
F4gas_Y1=F4gas_Y;
F4gas_Y=F4gas_Y+2;
//vertical and hide
ImageDC.SelectObject(&BitBMP10);
BitBlt(pDC->m_hDC, F4gas_X, F4gas_Y, 4, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
ImageDC.SelectObject(&BitBMP13);
BitBlt(pDC->m_hDC, F4gas_X, F4gas_Y1, 4, 2, ImageDC.m_hDC, 0, 0, SRCCOPY);
if(F4gas_Y>=290)
{
F4_region1=0;
F4_region2=0;
F4_region3=1;
F4_region4=0;
F4_region5=0;
//special process
ImageDC.SelectObject(&BitBMP15);
BitBlt(pDC->m_hDC, F4gas_X,F4gas_Y, 4, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
//if(Ball_X3==1)
if(BallValve_F4==1)
{
F4gas_Y=316;
F4gas_X=700;
}
else
{
F4gas_Y=316;
F4gas_X=720;
}
}
}
//region3
if(F4_region3==1)
{
//if(Ball_X3==1) //ballvalveopen
if(BallValve_F4==1)
{
F4gas_X1=F4gas_X+18;
F4gas_X=F4gas_X-2;
//horizontal and hide
ImageDC.SelectObject(&BitBMP11);
BitBlt(pDC->m_hDC, F4gas_X, F4gas_Y, 20, 4, ImageDC.m_hDC, 0, 0, SRCCOPY);
ImageDC.SelectObject(&BitBMP12);
BitBlt(pDC->m_hDC, F4gas_X1, F4gas_Y, 2, 4, ImageDC.m_hDC, 0, 0, SRCCOPY);
if(F4gas_X<=683)
{
F4_region1=0;
F4_region2=0;
F4_region3=0;
F4_region4=1;
F4_region5=0;
//special process
ImageDC.SelectObject(&BitBMP14);
BitBlt(pDC->m_hDC, F4gas_X,F4gas_Y, 20, 4, ImageDC.m_hDC, 0, 0, SRCCOPY);
F4gas_X=683;
F4gas_Y=318;
}
}
else //ballvalveclose
{
F4gas_X1=F4gas_X;
F4gas_X=F4gas_X+2;
//horizontal and hide
ImageDC.SelectObject(&BitBMP11);
BitBlt(pDC->m_hDC, F4gas_X, F4gas_Y, 20, 4, ImageDC.m_hDC, 0, 0, SRCCOPY);
ImageDC.SelectObject(&BitBMP12);
BitBlt(pDC->m_hDC, F4gas_X1, F4gas_Y, 2, 4, ImageDC.m_hDC, 0, 0, SRCCOPY);
if(F4gas_X>=750)
{
F4_region1=0;
F4_region2=0;
F4_region3=0;
F4_region4=1;
F4_region5=0;
//special process
ImageDC.SelectObject(&BitBMP14);
BitBlt(pDC->m_hDC, F4gas_X,F4gas_Y, 20, 4, ImageDC.m_hDC, 0, 0, SRCCOPY);
F4gas_X=773;
F4gas_Y=318;
}
}
}
if(F4_region4==1) //region4
{
F4gas_Y1=F4gas_Y;
F4gas_Y=F4gas_Y+2;
//vertical and hide
ImageDC.SelectObject(&BitBMP10);
BitBlt(pDC->m_hDC, F4gas_X, F4gas_Y, 4, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
ImageDC.SelectObject(&BitBMP13);
BitBlt(pDC->m_hDC, F4gas_X, F4gas_Y1, 4, 2, ImageDC.m_hDC, 0, 0, SRCCOPY);
if(F4gas_Y>=380)
{
F4_region1=0;
F4_region2=0;
F4_region3=0;
F4_region4=0;
F4_region5=1;
//special process
ImageDC.SelectObject(&BitBMP15);
BitBlt(pDC->m_hDC, F4gas_X,F4gas_Y, 4, 20, ImageDC.m_hDC, 0, 0, SRCCOPY);
//if(Ball_X3==1)
if(BallValve_F4==1)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -