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

📄 messagedlg.cpp

📁 这是工厂应用的软件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// MessageDlg.cpp : implementation file
//

#include "stdafx.h"
#include "SUNTEK.h"
#include "MessageDlg.h"
//#include "RecsetSTD.h"
#include "math.h"
#include "SelCalDlg.h"
#include "RecsetSTD.h"
#include "Report_29SF.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMessageDlg dialog


CMessageDlg::CMessageDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CMessageDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMessageDlg)
	m_T1Edit = _T("0");
	m_T2Edit = _T("0");
	m_T3Edit = _T("0");
	m_edit_count = 0;
	m_edit_type = _T("29SF");
	m_EDIT1 = 0.0f;
	m_EDIT2 = 0.0f;
	m_EDIT3 = 0.0f;
	//}}AFX_DATA_INIT
	bInMessage=true;
	bfirst=true;
	nMessageStep=0;
}


void CMessageDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMessageDlg)
	DDX_Control(pDX, IDC_LISTY, m_ListY);
	DDX_Control(pDX, IDC_LISTX, m_ListX);
	DDX_Control(pDX, IDC_LISTR, m_ListR);
	DDX_Control(pDX, IDC_STOP, m_StopCtrl);
	DDX_Control(pDX, IDC_START, m_StartCtrl);
	DDX_Control(pDX, IDCANCEL, m_ButtonCancel);
	DDX_Control(pDX, IDC_DAQDICTRL2, m_DAQDICtrl);
	DDX_Control(pDX, IDC_DAQDOCTRL1, m_DAQDOCtrl);
	DDX_Control(pDX, IDC_MSCOMM1, m_Com);
	DDX_Text(pDX, IDC_T1EDIT, m_T1Edit);
	DDX_Text(pDX, IDC_T2EDIT, m_T2Edit);
	DDX_Text(pDX, IDC_T3EDIT, m_T3Edit);
	DDX_Text(pDX, IDC_EDIT_count, m_edit_count);
	DDX_Text(pDX, IDC_EDIT_type, m_edit_type);
	DDX_Text(pDX, IDC_EDIT1, m_EDIT1);
	DDX_Text(pDX, IDC_EDIT2, m_EDIT2);
	DDX_Text(pDX, IDC_EDIT3, m_EDIT3);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMessageDlg, CDialog)
	//{{AFX_MSG_MAP(CMessageDlg)
	ON_WM_CTLCOLOR()
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_START, OnStart)
	ON_BN_CLICKED(IDC_STOP, OnStop)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_BUTTON_VIEWDATE, OnButtonViewdate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMessageDlg message handlers

BOOL CMessageDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	newbrush.CreateSolidBrush(RGB(58,110,165));
	m_DlgbkColor=(HBRUSH)newbrush;

	//////////////////////////////////
	if(m_Com.GetPortOpen())
		m_Com.SetPortOpen(false);

	m_Com.SetCommPort(2);
	m_Com.SetInBufferSize(1024);
	m_Com.SetOutBufferSize(512);

	if(!m_Com.GetPortOpen())
		m_Com.SetPortOpen(true);

	m_Com.SetInputMode(1);

	m_Com.SetSettings("9600,E,7,1");
	m_Com.SetRThreshold(1);

	m_Com.SetDTREnable(1);
	m_Com.SetRTSEnable(1);


	m_ListX.SetBkColor(RGB(58,110,165));
	m_ListY.SetBkColor(RGB(58,110,165));
	m_ListR.SetBkColor(RGB(58,110,165));

//	m_StopCtrl.EnableWindow(false);

	m_Com.SetInputLen(0);
	m_Com.GetInput();

	//////////////
	
	//////////////
	//打开xyr上下限表
	if(RecsetXYRBound.IsOpen())
	{
		RecsetXYRBound.Close();
	}
	RecsetXYRBound.Open();
	
	downX=RecsetXYRBound.m_downX;
	downY=RecsetXYRBound.m_downY;
	downR=RecsetXYRBound.m_downRotation;
	upX=RecsetXYRBound.m_upX;
	upY=RecsetXYRBound.m_upY;
	upR=RecsetXYRBound.m_upRotation;
	
	RecsetXYRBound.Close();
	//////////
	//打开表CL和STAT
		//	m_TypeSelectCtrl.GetWindowText(m_edit_type);
	CString cmd="select * from STAT where Type='";
	cmd=cmd+m_edit_type+"'";
	if(n_recSTAT.IsOpen())
	{
		n_recSTAT.Close();
	}
	n_recSTAT.Open(AFX_DB_USE_DEFAULT_TYPE,cmd);
	m_edit_count=n_recSTAT.m_Count;
	
	UpdateData(false);
	n_recSTAT.Close();
	///////////////
		m_StartCtrl.EnableWindow(false);
//		m_ButtonCancel.EnableWindow(false);
		m_DAQDICtrl.OpenDevice();
		m_DAQDICtrl.SetBit(0);
		m_DAQDICtrl.EnableBitScan(true);
		m_DAQDICtrl.SetScanTime(50);
		m_DAQDICtrl.CloseDevice();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

HBRUSH CMessageDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
	if(nCtlColor==CTLCOLOR_DLG)
	{
		pDC->SetBkColor(RGB(58,110,165));
		return m_DlgbkColor;
	}
	// TODO: Return a different brush if the default is not desired
	return hbr;
}


BEGIN_EVENTSINK_MAP(CMessageDlg, CDialog)
    //{{AFX_EVENTSINK_MAP(CMessageDlg)
	ON_EVENT(CMessageDlg, IDC_DAQDICTRL2, 2 /* OnBitScan */, OnOnBitScanDaqdictrl2, VTS_BOOL)
	ON_EVENT(CMessageDlg, IDC_MSCOMM1, 1 /* OnComm */, OnOnCommMscomm1, VTS_NONE)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CMessageDlg::OnOnBitScanDaqdictrl2(BOOL Data) 
{
	// TODO: Add your control notification handler code here
    /////////////////////////////////
	m_DAQDICtrl.OpenDevice();
	m_DAQDICtrl.SetBit(0);
	bool bStratMessage=m_DAQDICtrl.BitInput();
	if(bStratMessage==true&&bInMessage==true)
	{
		//////////////////////////
		bInMessage=false;
		nMessageStep=10;
		/////////////////////////
		SetTimer(1,1000,NULL);
	}
	m_DAQDICtrl.CloseDevice();
	
	/////////////////////////////////
}

void CMessageDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	UINT nStep=nIDEvent;
	if(nStep==1)
	{
		bool bValve21=true;
		bool bValve20=true;
		bool bValve31=true;
		bool bValve30=true;
		bool bSenso1=true;
		bool bSenso2=true;
		bool bSenso3=true;
		m_DAQDICtrl.OpenDevice();
		m_DAQDOCtrl.OpenDevice();
		switch (nMessageStep)
		{//switch
		case 10:
			m_DAQDOCtrl.SetBit(2);
			m_DAQDOCtrl.BitOutput(true);//2气缸动作
			SetTimer(20,3000,NULL);
			nMessageStep=20;
			break;
		case 20:
			m_DAQDICtrl.SetBit(1);
			bValve21=m_DAQDICtrl.BitInput();//2气缸进位
			m_DAQDICtrl.SetBit(2);
			bValve20=m_DAQDICtrl.BitInput();//2气缸原位
			
			if(bValve21&&(!bValve20))
			{
				KillTimer(20);
				m_DAQDOCtrl.SetBit(1);
				m_DAQDOCtrl.BitOutput(true);//1气缸动作
				nMessageStep=30;
			}
			break;
		case 30:
			m_DAQDOCtrl.SetBit(0);
			m_DAQDOCtrl.BitOutput(true);//吸真空动作
			SetTimer(40,9000,NULL);
			nMessageStep=40;
			break;
		case 40:
			m_DAQDICtrl.SetBit(5);
			bSenso1=m_DAQDICtrl.BitInput();
			
			m_DAQDICtrl.SetBit(6);
			bSenso2=m_DAQDICtrl.BitInput();
			
			m_DAQDICtrl.SetBit(7);
			bSenso3=m_DAQDICtrl.BitInput();
			
			if(bSenso1&&bSenso2&&bSenso3)
			{
				KillTimer(40);
				m_DAQDOCtrl.SetBit(3);
				m_DAQDOCtrl.BitOutput(true);//3气缸动作
				SetTimer(50,3000,NULL);
				nMessageStep=50;
			}	
			break;
		case 50:
			m_DAQDICtrl.SetBit(3);
			bValve31=m_DAQDICtrl.BitInput();//3气缸进位
			m_DAQDICtrl.SetBit(4);
			bValve30=m_DAQDICtrl.BitInput();//3气缸原位
			
			if(bValve31&&(!bValve30))
			{
				KillTimer(50);
				m_DAQDOCtrl.SetBit(0);
				m_DAQDOCtrl.BitOutput(false);//放真空动作
				SetTimer(55,3000,NULL);
				nMessageStep=55;
			}
			
		case 55:
			m_DAQDICtrl.SetBit(5);
			bSenso1=m_DAQDICtrl.BitInput();
			
			m_DAQDICtrl.SetBit(6);
			bSenso2=m_DAQDICtrl.BitInput();
			
			m_DAQDICtrl.SetBit(7);
			bSenso3=m_DAQDICtrl.BitInput();
			
			if(!(bSenso1||bSenso2||bSenso3))
			{
				KillTimer(55);
				BYTE TxData[]={0x02,0x4c,0x50,0x53,0x30,0x30,0x37,0x30,0x30,0x30,0x30,0x32,0x30,0x31,0x03};
				CByteArray array;
				array.RemoveAll();
				array.SetSize(15);
				for(int i=0;i<15;i++)
				{
					array.SetAt(i,TxData[i]);
				}
				m_Com.SetOutput(COleVariant(array));
				nMessageStep=56;
				Sleep(100);						
			}
			break;
		case 70:
			m_DAQDOCtrl.SetBit(0);
			m_DAQDOCtrl.BitOutput(true);//吸真空动作
			SetTimer(80,9000,NULL);
			nMessageStep=80;
			break;
		case 80:
			m_DAQDICtrl.SetBit(5);
			bSenso1=m_DAQDICtrl.BitInput();
			
			m_DAQDICtrl.SetBit(6);
			bSenso2=m_DAQDICtrl.BitInput();
			
			m_DAQDICtrl.SetBit(7);
			bSenso3=m_DAQDICtrl.BitInput();
			
			if(bSenso1&&bSenso2&&bSenso3)
			{
				KillTimer(80);
				m_DAQDOCtrl.SetBit(3);
				m_DAQDOCtrl.BitOutput(false);//3气缸回位
				SetTimer(90,3000,NULL);
				nMessageStep=90;
			}	
			break;
		case 90:
			m_DAQDICtrl.SetBit(3);
			bValve31=m_DAQDICtrl.BitInput();//3气缸进位
			m_DAQDICtrl.SetBit(4);
			bValve30=m_DAQDICtrl.BitInput();//3气缸原位
			
			if(bValve30&&(!bValve31))
			{
				KillTimer(90);
				m_DAQDOCtrl.SetBit(0);
				m_DAQDOCtrl.BitOutput(false);//放真空动作
				nMessageStep=100;
			}	
			break;
		case 100:
			m_DAQDICtrl.SetBit(3);
			bValve31=m_DAQDICtrl.BitInput();//3气缸进位
			m_DAQDICtrl.SetBit(4);
			bValve30=m_DAQDICtrl.BitInput();//3气缸原位
			
			if(bValve30&&(!bValve31))
			{
				m_DAQDOCtrl.SetBit(1);
				m_DAQDOCtrl.BitOutput(false);//1气缸回位
				nMessageStep=110;		
			}	
			break;
		case 110:
			m_DAQDOCtrl.SetBit(2);
			m_DAQDOCtrl.BitOutput(false);//2气缸回位
			SetTimer(120,3000,NULL);
			nMessageStep=120;
			break;
		case 120:
			m_DAQDICtrl.SetBit(1);
			bValve21=m_DAQDICtrl.BitInput();//2气缸进位
			m_DAQDICtrl.SetBit(2);
			bValve20=m_DAQDICtrl.BitInput();//2气缸原位
			
			if(bValve20&&(!bValve21))
			{
				KillTimer(1);
				KillTimer(120);
				bInMessage=true;
				nMessageStep=0;
				//				if(AfxMessageBox("保存数据?",MB_YESNO)==IDYES)
				//				{
				UpdateData(true);
				CString cmd1="select * from STAT where Type='";
				cmd1=cmd1+m_edit_type+"'";
				if(n_recSTAT.IsOpen())
				{
					n_recSTAT.Close();
				}
				n_recSTAT.Open(AFX_DB_USE_DEFAULT_TYPE,cmd1);
				n_recSTAT.Edit();
				n_recSTAT.m_Count+=1;
				n_recSTAT.Update();
				m_edit_count=n_recSTAT.m_Count;
				n_recCL.Open();
				n_recCL.AddNew();
				n_recCL.m_Type=m_edit_type;
				CTime time=CTime::GetCurrentTime();	
				n_recCL.m_Time=time.Format("%y-%m-%d %H:%M");
				n_recCL.m_T1=atof(m_T1Edit);
				n_recCL.m_T2=atof(m_T2Edit);
				n_recCL.m_Rotation=atof(m_T3Edit);
				n_recCL.m_T3=0;
				n_recCL.Update();
				UpdateData(false);
				n_recSTAT.Close();
				n_recCL.Close();
				
				//				}
			}	
			break;
		}//switch
		m_DAQDICtrl.CloseDevice();
		m_DAQDOCtrl.CloseDevice();	
	}
	

⌨️ 快捷键说明

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