📄 messagedlg.cpp
字号:
// 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 + -