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

📄 drvfunctest.cpp

📁 一个很好的VC++程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// DrvFuncTest.cpp : implementation file
//

#include "stdafx.h"
#include "SMT5K.h"
#include "DrvFuncTest.h"
#include "MonitorAxis.h"
#include "MonitorIPL.h"
#include "SM5000.h"
#include "SerialPort.h"

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

extern int CurrentAxis;
extern CSerialPort m_ComPort; 
extern CString m_strTXDataCOM1; //COM1发送数据
extern CMonitorAxis *pMonitorAxis[4];
extern int g_ExppEn;
extern int g_AutoDec;
extern int g_AO;

/////////////////////////////////////////////////////////////////////////////
// CDrvFuncTest dialog


CDrvFuncTest::CDrvFuncTest(CWnd* pParent /*=NULL*/)
	: CDialog(CDrvFuncTest::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDrvFuncTest)
	m_DrvType = 0;
	m_Direction = 0;
	m_AccType = 0;
	m_PosType = 0;
	m_AccTime = 3.0f;
	m_DecTime = 3.0f;
	m_AO = 0;
	m_COMPP = 0;
	m_COMPM = 0;
	m_LP = 0;
	m_SV = 1000;
	m_V = 10000;
	m_VaAcc = 4000;
	m_VaDec = 0;
	m_P = 30000;
	m_Position = 0;
	m_ExppEn = 0;
	m_AutoDec = FALSE;
	m_PulsarEn = FALSE;
	//}}AFX_DATA_INIT
}


void CDrvFuncTest::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDrvFuncTest)
	DDX_Radio(pDX, IDC_DRVTYPE_FIXEDPULSE, m_DrvType);
	DDX_Radio(pDX, IDC_DIRECT_POSITIVE, m_Direction);
	DDX_Radio(pDX, IDC_ACCTYPE_FIXEDV, m_AccType);
	DDX_Radio(pDX, IDC_POSTYPE_RELATIVE, m_PosType);
	DDX_Text(pDX, IDC_EDIT_ACC_TIME, m_AccTime);
	DDX_Text(pDX, IDC_EDIT_DEC_TIME, m_DecTime);
	DDX_Text(pDX, IDC_EDIT_AO, m_AO);
	DDX_Text(pDX, IDC_EDIT_COMPM, m_COMPP);
	DDX_Text(pDX, IDC_EDIT_COMPP, m_COMPM);
	DDX_Text(pDX, IDC_EDIT_LP, m_LP);
	DDX_Text(pDX, IDC_EDIT_SV, m_SV);
	DDX_Text(pDX, IDC_EDIT_V, m_V);
	DDX_Text(pDX, IDC_EDIT_VA_ACC, m_VaAcc);
	DDX_Text(pDX, IDC_EDIT_VA_DEC, m_VaDec);
	DDX_Text(pDX, IDC_EDIT_P2, m_P);
	DDX_Text(pDX, IDC_EDIT_POS, m_Position);
	DDX_Check(pDX, IDC_CHECK_EXPP, m_ExppEn);
	DDX_Check(pDX, IDC_CHECK_AUTO_DEC, m_AutoDec);
	DDX_Check(pDX, IDC_CHECK_PULSAR, m_PulsarEn);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDrvFuncTest, CDialog)
	//{{AFX_MSG_MAP(CDrvFuncTest)
	ON_BN_CLICKED(IDC_ACCTYPE_FIXEDV, OnAcctypeFixedv)
	ON_BN_CLICKED(IDC_ACCTYPE_TCURVE, OnAcctypeTcurve)
	ON_BN_CLICKED(IDC_DIRECT_POSITIVE, OnDirectPositive)
	ON_BN_CLICKED(IDC_DIRECT_NEGTIVE, OnDirectNegtive)
	ON_BN_CLICKED(IDC_DRVTYPE_CONTINUE, OnDrvtypeContinue)
	ON_BN_CLICKED(IDC_DRVTYPE_FIXEDPULSE, OnDrvtypeFixedpulse)
	ON_BN_CLICKED(IDC_POSTYPE_ABSOLUTE, OnPostypeAbsolute)
	ON_BN_CLICKED(IDC_POSTYPE_RELATIVE, OnPostypeRelative)
	ON_EN_KILLFOCUS(IDC_EDIT_LP, OnKillfocusEditLp)
	ON_BN_CLICKED(IDC_START, OnStart)
	ON_EN_KILLFOCUS(IDC_EDIT_P2, OnKillfocusEditP)
	ON_EN_KILLFOCUS(IDC_EDIT_COMPP, OnKillfocusEditCompp)
	ON_EN_KILLFOCUS(IDC_EDIT_COMPM, OnKillfocusEditCompm)
	ON_EN_KILLFOCUS(IDC_EDIT_SV, OnKillfocusEditSv)
	ON_EN_KILLFOCUS(IDC_EDIT_V, OnKillfocusEditV)
	ON_EN_KILLFOCUS(IDC_EDIT_VA_ACC, OnKillfocusEditVaAcc)
	ON_EN_KILLFOCUS(IDC_EDIT_VA_DEC, OnKillfocusEditVaDec)
	ON_EN_KILLFOCUS(IDC_EDIT_DEC_TIME, OnKillfocusEditDecTime)
	ON_EN_KILLFOCUS(IDC_EDIT_AO, OnKillfocusEditAo)
	ON_EN_KILLFOCUS(IDC_EDIT_ACC_TIME, OnKillfocusEditAccTime)
	ON_BN_CLICKED(IDC_UPDATE_V, OnUpdateV)
	ON_BN_CLICKED(IDC_UPDATE_LP_EP, OnUpdateLpEp)
	ON_BN_CLICKED(IDC_UPDATE_COMPP, OnUpdateCompp)
	ON_BN_CLICKED(IDC_UPDATE_COMPM, OnUpdateCompm)
	ON_BN_CLICKED(IDC_UPDATE_P2, OnUpdateP2)
	ON_BN_CLICKED(IDC_UPDATE_POS, OnUpdatePos)
	ON_EN_KILLFOCUS(IDC_EDIT_POS, OnKillfocusEditPos)
	ON_BN_CLICKED(IDC_CHECK_EXPP, OnCheckExpp)
	ON_BN_CLICKED(IDC_READ_LPEP, OnReadLpep)
	ON_BN_CLICKED(IDC_ACCTYPE_FULL_S, OnAcctypeFullS)
	ON_BN_CLICKED(IDC_ACCTYPE_PART_S, OnAcctypePartS)
	ON_BN_CLICKED(IDC_DSSTOP, OnDsstop)
	ON_BN_CLICKED(IDC_IMSTOP, OnImstop)
	ON_BN_CLICKED(IDC_HOME, OnHome)
	ON_BN_CLICKED(IDC_CHECK_AUTO_DEC, OnCheckAutoDec)
	ON_BN_CLICKED(IDC_CHECK_PULSAR, OnCheckPulsar)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDrvFuncTest message handlers


void CDrvFuncTest::OnAcctypeFixedv() 
{
	m_AccType = ACC_TYPE_CV;

	GetDlgItem(IDC_STATIC_SV)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_SV)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_ACC_TIME)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_ACC_TIME)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_DEC_TIME)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_DEC_TIME)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_VA_ACC)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_VA_ACC)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_VA_DEC)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_VA_DEC)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_AO)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_AO)->EnableWindow(FALSE);
}

void CDrvFuncTest::OnAcctypeTcurve() 
{
	m_AccType = ACC_TYPE_T;

	GetDlgItem(IDC_STATIC_SV)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_SV)->EnableWindow(TRUE);

	GetDlgItem(IDC_STATIC_ACC_TIME)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_ACC_TIME)->EnableWindow(TRUE);

	GetDlgItem(IDC_STATIC_DEC_TIME)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_DEC_TIME)->EnableWindow(TRUE);

	GetDlgItem(IDC_STATIC_VA_ACC)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_VA_ACC)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_VA_DEC)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_VA_DEC)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_AO)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_AO)->EnableWindow(TRUE);
}


void CDrvFuncTest::OnAcctypeFullS() 
{
	m_AccType = ACC_TYPE_FULL_S;

	GetDlgItem(IDC_STATIC_SV)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_SV)->EnableWindow(TRUE);

	GetDlgItem(IDC_STATIC_ACC_TIME)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_ACC_TIME)->EnableWindow(TRUE);

	GetDlgItem(IDC_STATIC_DEC_TIME)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_DEC_TIME)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_VA_ACC)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_VA_ACC)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_VA_DEC)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_VA_DEC)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_AO)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_AO)->EnableWindow(TRUE);
}

void CDrvFuncTest::OnAcctypePartS() 
{
	m_AccType = ACC_TYPE_PART_S;

	GetDlgItem(IDC_STATIC_SV)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_SV)->EnableWindow(TRUE);

	GetDlgItem(IDC_STATIC_ACC_TIME)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_ACC_TIME)->EnableWindow(TRUE);

	GetDlgItem(IDC_STATIC_DEC_TIME)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_DEC_TIME)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_VA_ACC)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_VA_ACC)->EnableWindow(TRUE);

	GetDlgItem(IDC_STATIC_VA_DEC)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_VA_DEC)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_AO)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_AO)->EnableWindow(TRUE);
}


void CDrvFuncTest::OnDirectPositive() 
{
	m_Direction = DIR_POS;
}

void CDrvFuncTest::OnDirectNegtive() 
{
	m_Direction = DIR_NEG;
}

void CDrvFuncTest::OnDrvtypeContinue() 
{
	m_DrvType = DRV_TYPE_C;

	GetDlgItem(IDC_POSTYPE_RELATIVE)->EnableWindow(FALSE);
	GetDlgItem(IDC_POSTYPE_ABSOLUTE)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_P2)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_P2)->EnableWindow(FALSE);
	GetDlgItem(IDC_UPDATE_P2)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_POS)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_POS)->EnableWindow(FALSE);
	GetDlgItem(IDC_UPDATE_POS)->EnableWindow(FALSE);
}

void CDrvFuncTest::OnDrvtypeFixedpulse() 
{
	m_DrvType = DRV_TYPE_Q;

	GetDlgItem(IDC_POSTYPE_RELATIVE)->EnableWindow(TRUE);
	GetDlgItem(IDC_POSTYPE_ABSOLUTE)->EnableWindow(TRUE);

	if(m_PosType == POS_TYPE_REL)
	{
	GetDlgItem(IDC_STATIC_P2)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_P2)->EnableWindow(TRUE);
	GetDlgItem(IDC_UPDATE_P2)->EnableWindow(TRUE);
	}
	else
	{
	GetDlgItem(IDC_STATIC_POS)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_POS)->EnableWindow(TRUE);
	GetDlgItem(IDC_UPDATE_POS)->EnableWindow(TRUE);
	}
}

void CDrvFuncTest::OnCheckExpp() 
{
	m_ExppEn = ! m_ExppEn;
	g_ExppEn = m_ExppEn;

	GetDlgItem(IDC_CHECK_PULSAR)->EnableWindow(g_ExppEn && m_DrvType == DRV_TYPE_Q);
}

void CDrvFuncTest::OnPostypeAbsolute() 
{
	m_PosType = POS_TYPE_ABS;

	GetDlgItem(IDC_DIRECT_POSITIVE)->EnableWindow(FALSE);
	GetDlgItem(IDC_DIRECT_NEGTIVE)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_P2)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_P2)->EnableWindow(FALSE);
	GetDlgItem(IDC_UPDATE_P2)->EnableWindow(FALSE);

	GetDlgItem(IDC_STATIC_POS)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_POS)->EnableWindow(TRUE);
	GetDlgItem(IDC_UPDATE_POS)->EnableWindow(TRUE);
}

void CDrvFuncTest::OnPostypeRelative() 
{
	m_PosType = POS_TYPE_REL;

	GetDlgItem(IDC_DIRECT_POSITIVE)->EnableWindow(TRUE);
	GetDlgItem(IDC_DIRECT_NEGTIVE)->EnableWindow(TRUE);

	GetDlgItem(IDC_STATIC_P2)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_P2)->EnableWindow(TRUE);
	GetDlgItem(IDC_UPDATE_P2)->EnableWindow(TRUE);

	GetDlgItem(IDC_STATIC_POS)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_POS)->EnableWindow(FALSE);
	GetDlgItem(IDC_UPDATE_POS)->EnableWindow(FALSE);

	//SetDlgItemText(IDC_EDIT_POS,"No need");
}

void CDrvFuncTest::OnKillfocusEditLp() 
{
	m_LP = GetDlgItemInt(IDC_EDIT_LP);
}

⌨️ 快捷键说明

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