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

📄 movetest.cpp

📁 演示vc与专业控制器的连接
💻 CPP
📖 第 1 页 / 共 4 页
字号:
// MoveTest.cpp : implementation file
//

#include "stdafx.h"
#include "MPC2810Demo.h"
#include "MoveTest.h"
#include "MPC08A.H"
#include "MPC2810DemoDoc.h"
#include "MainFrm.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMoveTest

IMPLEMENT_DYNCREATE(CMoveTest, CFormView)

CMoveTest::CMoveTest()
	: CFormView(CMoveTest::IDD)
{
	//{{AFX_DATA_INIT(CMoveTest)
	m_sALowSpeed = _T("");
	m_sAHighSpeed = _T("");
	m_sAStep = _T("");
	m_sAAxisNum = _T("");
	m_sAAccel = _T("");
	m_sXaccel = _T("");
	m_sXAxisNum = _T("");
	m_sXLowSpeed = _T("");
	m_sXStep = _T("");
	m_sYaccel = _T("");
	m_sYAxisNum = _T("");
	m_sYHighSpeed = _T("");
	m_sYLowSpeed = _T("");
	m_sYStep = _T("");
	m_sZaccel = _T("");
	m_sZAxisNum = _T("");
	m_sZHighSpeed = _T("");
	m_sZLowSpeed = _T("");
	m_sZStep = _T("");
	m_sLAaxisNum = _T("");
	m_sLaccel = _T("");
	m_sLAstep = _T("");
	m_sLHighSpeed = _T("");
	m_sLLowSpeed = _T("");
	m_sLXaxisNum = _T("");
	m_sLXstep = _T("");
	m_sLYaxisNum = _T("");
	m_sLYstep = _T("");
	m_sLZaxisNum = _T("");
	m_sLZstep = _T("");
	m_sCircleAccel = _T("");
	m_sCircleHighSpeed = _T("");
	m_sCircleLowSpeed = _T("");
	m_sCircleAngle = _T("");
	m_sCircleJingDu = _T("");
	m_sCirclebili = _T("");
	m_sCircleXorign = _T("");
	m_sCircleYorign = _T("");
	m_sCircleXAxis = _T("");
	m_sCircleYAxis = _T("");
	m_sXHighSpeed = _T("");
	m_sABack = _T("");
	m_sAPos = _T("");
	m_sASpeed = _T("");
	m_sXBack = _T("");
	m_sXPos = _T("");
	m_sXSpeed = _T("");
	m_sYBack = _T("");
	m_sYPos = _T("");
	m_sYSpeed = _T("");
	m_sZBack = _T("");
	m_sZPos = _T("");
	m_sZSpeed = _T("");
	//}}AFX_DATA_INIT
	m_nLineMoveType=0;
	m_nLineMoveNum=1;
	m_nLineChaNum=0;
	m_nLineChaType=0;
	m_nCircleMoveType=0;
	m_nLineMoveStyle=0;
	m_nSelect=0;
	
}

CMoveTest::~CMoveTest()
{
	
}

void CMoveTest::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMoveTest)
	DDX_Control(pDX, IDC_TAB1, m_cTabSet);
	DDX_Text(pDX, IDC_EDIT_ALOWSPD, m_sALowSpeed);
	DDX_Text(pDX, IDC_EDIT_AHIGHSPD, m_sAHighSpeed);
	DDX_Text(pDX, IDC_EDIT_ASTEP, m_sAStep);
	DDX_Text(pDX, IDC_EDIT_AAXIS, m_sAAxisNum);
	DDX_Text(pDX, IDC_EDIT_AACCEL, m_sAAccel);
	DDX_Text(pDX, IDC_EDIT_XACCEL, m_sXaccel);
	DDX_Text(pDX, IDC_EDIT_XAXIS, m_sXAxisNum);
	DDX_Text(pDX, IDC_EDIT_XLOWSPD, m_sXLowSpeed);
	DDX_Text(pDX, IDC_EDIT_XSTEP, m_sXStep);
	DDX_Text(pDX, IDC_EDIT_YACCEL, m_sYaccel);
	DDX_Text(pDX, IDC_EDIT_YAXIS, m_sYAxisNum);
	DDX_Text(pDX, IDC_EDIT_YHIGHSPD, m_sYHighSpeed);
	DDX_Text(pDX, IDC_EDIT_YLOWSPD, m_sYLowSpeed);
	DDX_Text(pDX, IDC_EDIT_YSTEP, m_sYStep);
	DDX_Text(pDX, IDC_EDIT_ZACCEL, m_sZaccel);
	DDX_Text(pDX, IDC_EDIT_ZAXIS, m_sZAxisNum);
	DDX_Text(pDX, IDC_EDIT_ZHIGHSPD, m_sZHighSpeed);
	DDX_Text(pDX, IDC_EDIT_ZLOWSPD, m_sZLowSpeed);
	DDX_Text(pDX, IDC_EDIT_ZSTEP, m_sZStep);
	DDX_Text(pDX, IDC_EDIT_LAAXIS, m_sLAaxisNum);
	DDX_Text(pDX, IDC_EDIT_LACCEL, m_sLaccel);
	DDX_Text(pDX, IDC_EDIT_LASTEP, m_sLAstep);
	DDX_Text(pDX, IDC_EDIT_LHIGHSPD, m_sLHighSpeed);
	DDX_Text(pDX, IDC_EDIT_LLOWSPD, m_sLLowSpeed);
	DDX_Text(pDX, IDC_EDIT_LXAXIS, m_sLXaxisNum);
	DDX_Text(pDX, IDC_EDIT_LXSTEP, m_sLXstep);
	DDX_Text(pDX, IDC_EDIT_LYAXIS, m_sLYaxisNum);
	DDX_Text(pDX, IDC_EDIT_LYSTEP, m_sLYstep);
	DDX_Text(pDX, IDC_EDIT_LZAXIS, m_sLZaxisNum);
	DDX_Text(pDX, IDC_EDIT_LZSTEP, m_sLZstep);
	DDX_Text(pDX, IDC_EDIT_CLACCEL, m_sCircleAccel);
	DDX_Text(pDX, IDC_EDIT_CLHIGHSPD, m_sCircleHighSpeed);
	DDX_Text(pDX, IDC_EDIT_CLLOWSPD, m_sCircleLowSpeed);
	DDX_Text(pDX, IDC_EDIT_CLANGLE, m_sCircleAngle);
	DDX_Text(pDX, IDC_EDIT_CLRANGE, m_sCircleJingDu);
	DDX_Text(pDX, IDC_EDIT_CLSCAN, m_sCirclebili);
	DDX_Text(pDX, IDC_EDIT_CLXORIGN, m_sCircleXorign);
	DDX_Text(pDX, IDC_EDIT_CLYORIGN, m_sCircleYorign);
	DDX_Text(pDX, IDC_EDIT_CXAXIS, m_sCircleXAxis);
	DDX_Text(pDX, IDC_EDIT_CYAXIS, m_sCircleYAxis);
	DDX_Text(pDX, IDC_EDIT_XHIGHSPD, m_sXHighSpeed);
	DDX_Text(pDX, IDC_EDIT_ABACK, m_sABack);
	DDX_Text(pDX, IDC_EDIT_APOS, m_sAPos);
	DDX_Text(pDX, IDC_EDIT_ASPEED, m_sASpeed);
	DDX_Text(pDX, IDC_EDIT_XBACK, m_sXBack);
	DDX_Text(pDX, IDC_EDIT_XPOS, m_sXPos);
	DDX_Text(pDX, IDC_EDIT_XSPEED, m_sXSpeed);
	DDX_Text(pDX, IDC_EDIT_YBACK, m_sYBack);
	DDX_Text(pDX, IDC_EDIT_YPOS, m_sYPos);
	DDX_Text(pDX, IDC_EDIT_YSPEED, m_sYSpeed);
	DDX_Text(pDX, IDC_EDIT_ZBACK, m_sZBack);
	DDX_Text(pDX, IDC_EDIT_ZPOS, m_sZPos);
	DDX_Text(pDX, IDC_EDIT_ZSPEED, m_sZSpeed);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMoveTest, CFormView)
	//{{AFX_MSG_MAP(CMoveTest)
	ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnSelchangeTab1)
	ON_WM_SHOWWINDOW()
	ON_BN_CLICKED(IDC_RAD_CONSPEED, OnRadConspeed)
	ON_BN_CLICKED(IDC_RAD_FASTDPEED, OnRadFastdpeed)
	ON_BN_CLICKED(IDC_RAD_ONEAXIS, OnRadOneaxis)
	ON_BN_CLICKED(IDC_RAD_TWOAXIS, OnRadTwoaxis)
	ON_BN_CLICKED(IDC_RAD_THREEAXIS, OnRadThreeaxis)
	ON_BN_CLICKED(IDC_RAD_FOURAXIS, OnRadFouraxis)
	ON_BN_CLICKED(IDC_RAD_LCONSPEED, OnRadLconspeed)
	ON_BN_CLICKED(IDC_RAD_LFASTDPEED, OnRadLfastdpeed)
	ON_BN_CLICKED(IDC_RAD_LTWONUM, OnRadLtwonum)
	ON_BN_CLICKED(IDC_RAD_LTHREENUM, OnRadLthreenum)
	ON_BN_CLICKED(IDC_RAD_LFOURNUM, OnRadLfournum)
	ON_BN_CLICKED(IDC_RAD_CLCONSPEED, OnRadClconspeed)
	ON_BN_CLICKED(IDC_RAD_CLFASTDPEED, OnRadClfastdpeed)
	ON_BN_CLICKED(IDC_BTN_RUN, OnBtnRun)
	ON_BN_CLICKED(IDC_RAD_PMOVE, OnRadPmove)
	ON_BN_CLICKED(IDC_RAD_VMOVE, OnRadVmove)
	ON_BN_CLICKED(IDC_SUDDENSTOP, OnSuddenstop)
	ON_BN_CLICKED(IDC_RESET, OnReset)
	ON_BN_CLICKED(IDC_DECELSTOP, OnDecelstop)
	ON_BN_CLICKED(IDC_BUTTON_PAUSE, OnButtonPause)
	ON_BN_CLICKED(IDC_BUTTON_RESUME, OnButtonResume)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMoveTest diagnostics

#ifdef _DEBUG

void CMoveTest::AssertValid() const
{
	CFormView::AssertValid();
}

void CMoveTest::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMoveTest message handlers
//////////////////////////////////////////////////////////////////////////
//函数功能:创建Tab控件
//////////////////////////////////////////////////////////////////////////
void CMoveTest::CreateTab()
{
	TCITEM curItem;
	curItem.mask=TCIF_TEXT;
	curItem.cchTextMax =10;
	curItem.pszText ="直线运动设置";
	m_cTabSet.InsertItem(0,&curItem);
	curItem.pszText ="直线插补设置";
	m_cTabSet.InsertItem(1,&curItem);
	curItem.pszText ="圆弧运动设置";
	m_cTabSet.InsertItem(2,&curItem);
	
}
//////////////////////////////////////////////////////////////////////////
//函数功能:选择Tab控件的标题
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	CRect rect;
	m_cTabSet.GetClientRect(&rect);
	m_nSelect=m_cTabSet.GetCurSel();
	if(m_nSelect==0)
	{
		SetTabContentStatus(0);
		GetDlgItem(IDC_FRAME_STATIC)->SetWindowText("直线运动参数设置");
	}
	else if(m_nSelect==1)
	{
		SetTabContentStatus(1);
		GetDlgItem(IDC_FRAME_STATIC)->SetWindowText("直线插补运动参数设置");
	}
	else
	{
		SetTabContentStatus(2);
		GetDlgItem(IDC_FRAME_STATIC)->SetWindowText("圆弧插补运动参数设置");

	}
	
	*pResult =m_nSelect;
}
//////////////////////////////////////////////////////////////////////////
//函数功能:显示创建的Tab控件的内容
//////////////////////////////////////////////////////////////////////////
void CMoveTest::SetTabContentStatus(int TabID)
{
 	int nStatus,nStatus1,nStatus2;
		if(TabID==1)			//直线插补
	{
		nStatus=SW_HIDE;
		nStatus1=SW_SHOW;
		nStatus2=SW_HIDE;
	}
	else if(TabID==0)					//直线运动,TabID=0
	{
		nStatus=SW_SHOW;
		nStatus1=SW_HIDE;
		nStatus2=SW_HIDE;
	}
	else
	{	nStatus=SW_HIDE;
		nStatus1=SW_HIDE;
		nStatus2=SW_SHOW;
	}

	GetDlgItem(IDC_STATIC_AXISNUM)->ShowWindow(nStatus);
	GetDlgItem(IDC_STATIC_LOWSPEED)->ShowWindow(nStatus);
	GetDlgItem(IDC_STATIC_STEP)->ShowWindow(nStatus);
	GetDlgItem(IDC_STATIC_HIGHSPEED)->ShowWindow(nStatus);
	GetDlgItem(IDC_STATIC_ACCEL)->ShowWindow(nStatus);
	
	GetDlgItem(IDC_EDIT_XAXIS)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_YAXIS)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_ZAXIS)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_AAXIS)->ShowWindow(nStatus);
	
	GetDlgItem(IDC_EDIT_XSTEP)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_YSTEP)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_ZSTEP)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_ASTEP)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_XLOWSPD)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_YLOWSPD)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_ZLOWSPD)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_ALOWSPD)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_XHIGHSPD)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_YHIGHSPD)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_ZHIGHSPD)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_AHIGHSPD)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_XACCEL)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_YACCEL)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_ZACCEL)->ShowWindow(nStatus);
	GetDlgItem(IDC_EDIT_AACCEL)->ShowWindow(nStatus);

	GetDlgItem(IDC_STATIC_SPEEDSTYLE)->ShowWindow(nStatus);
	GetDlgItem(IDC_RAD_CONSPEED)->ShowWindow(nStatus);
	GetDlgItem(IDC_RAD_FASTDPEED)->ShowWindow(nStatus);

	GetDlgItem(IDC_STATIC_MOVESTYLE)->ShowWindow(nStatus);
	GetDlgItem(IDC_RAD_PMOVE)->ShowWindow(nStatus);
	GetDlgItem(IDC_RAD_VMOVE)->ShowWindow(nStatus);

	
	GetDlgItem(IDC_STATIC_AXISSTYLE)->ShowWindow(nStatus);
	GetDlgItem(IDC_RAD_ONEAXIS)->ShowWindow(nStatus);
	GetDlgItem(IDC_RAD_TWOAXIS)->ShowWindow(nStatus);
	GetDlgItem(IDC_RAD_THREEAXIS)->ShowWindow(nStatus);
	GetDlgItem(IDC_RAD_FOURAXIS)->ShowWindow(nStatus);


	GetDlgItem(IDC_STATIC_LAXISNUM)->ShowWindow(nStatus1);
	GetDlgItem(IDC_STATIC_LSTEP)->ShowWindow(nStatus1);
	
	GetDlgItem(IDC_EDIT_LXAXIS)->ShowWindow(nStatus1);
	GetDlgItem(IDC_EDIT_LYAXIS)->ShowWindow(nStatus1);
	GetDlgItem(IDC_EDIT_LZAXIS)->ShowWindow(nStatus1);
	GetDlgItem(IDC_EDIT_LAAXIS)->ShowWindow(nStatus1);
	GetDlgItem(IDC_EDIT_LXSTEP)->ShowWindow(nStatus1);
	GetDlgItem(IDC_EDIT_LYSTEP)->ShowWindow(nStatus1);
	GetDlgItem(IDC_EDIT_LZSTEP)->ShowWindow(nStatus1);
	GetDlgItem(IDC_EDIT_LASTEP)->ShowWindow(nStatus1);
	GetDlgItem(IDC_STATIC_LSPEEDSTYLE)->ShowWindow(nStatus1);
	GetDlgItem(IDC_RAD_LCONSPEED)->ShowWindow(nStatus1);
	GetDlgItem(IDC_RAD_LFASTDPEED)->ShowWindow(nStatus1);
	
	GetDlgItem(IDC_STATIC_LSPEED)->ShowWindow(nStatus1);
	GetDlgItem(IDC_STATIC_LLOWSPD)->ShowWindow(nStatus1);
	GetDlgItem(IDC_STATIC_LHIGHSPD)->ShowWindow(nStatus1);
	GetDlgItem(IDC_STATIC_LACCEL)->ShowWindow(nStatus1);
	GetDlgItem(IDC_EDIT_LLOWSPD)->ShowWindow(nStatus1);
	GetDlgItem(IDC_EDIT_LHIGHSPD)->ShowWindow(nStatus1);
	GetDlgItem(IDC_EDIT_LACCEL)->ShowWindow(nStatus1);
	GetDlgItem(IDC_STATIC_LNUMSTYLE)->ShowWindow(nStatus1);
	GetDlgItem(IDC_RAD_LTWONUM)->ShowWindow(nStatus1);
	GetDlgItem(IDC_RAD_LTHREENUM)->ShowWindow(nStatus1);
	GetDlgItem(IDC_RAD_LFOURNUM)->ShowWindow(nStatus1);
	


	GetDlgItem(IDC_STATIC_CXAXISNUM)->ShowWindow(nStatus2);
	GetDlgItem(IDC_STATIC_CYAXISNUM)->ShowWindow(nStatus2);
	GetDlgItem(IDC_STATIC_CLXORIGN)->ShowWindow(nStatus2);
	GetDlgItem(IDC_STATIC_CLYORIGN)->ShowWindow(nStatus2);
	GetDlgItem(IDC_STATIC_CLANGLE)->ShowWindow(nStatus2);
	GetDlgItem(IDC_STATIC_CLRANGE)->ShowWindow(nStatus2);
	GetDlgItem(IDC_STATIC_CLSCAN)->ShowWindow(nStatus2);
	GetDlgItem(IDC_EDIT_CXAXIS)->ShowWindow(nStatus2);
	GetDlgItem(IDC_EDIT_CYAXIS)->ShowWindow(nStatus2);
	GetDlgItem(IDC_EDIT_CLXORIGN)->ShowWindow(nStatus2);
	GetDlgItem(IDC_EDIT_CLYORIGN)->ShowWindow(nStatus2);
	GetDlgItem(IDC_EDIT_CLANGLE)->ShowWindow(nStatus2);
	GetDlgItem(IDC_EDIT_CLRANGE)->ShowWindow(nStatus2);
	GetDlgItem(IDC_EDIT_CLSCAN)->ShowWindow(nStatus2);
	GetDlgItem(IDC_STATIC_CLSPDSTYLE)->ShowWindow(nStatus2);
	GetDlgItem(IDC_RAD_CLCONSPEED)->ShowWindow(nStatus2);
	GetDlgItem(IDC_RAD_CLFASTDPEED)->ShowWindow(nStatus2);
	
	GetDlgItem(IDC_STATIC_CLSPEED)->ShowWindow(nStatus2);
	GetDlgItem(IDC_STATIC_CLLOWSPD)->ShowWindow(nStatus2);
	GetDlgItem(IDC_STATIC_CLHIGHSPD)->ShowWindow(nStatus2);
	GetDlgItem(IDC_STATIC_CLACCEL)->ShowWindow(nStatus2);
	GetDlgItem(IDC_EDIT_CLLOWSPD)->ShowWindow(nStatus2);
	GetDlgItem(IDC_EDIT_CLHIGHSPD)->ShowWindow(nStatus2);
	GetDlgItem(IDC_EDIT_CLACCEL)->ShowWindow(nStatus2);

}
//////////////////////////////////////////////////////////////////////////
//函数功能:运动参数初始化
//////////////////////////////////////////////////////////////////////////
void CMoveTest::InitParam()
{
	//直线运动参数初始化
	m_sXAxisNum ="1";
	m_sXLowSpeed ="2000";
	m_sXStep ="5000";
	m_sXHighSpeed ="6000";
	m_sXaccel ="3000";
	
	m_sYAxisNum ="2";
	m_sYLowSpeed ="3000";
	m_sYStep ="5000"; 
	m_sYHighSpeed ="6000";
	m_sYaccel ="3000";
	
	m_sZAxisNum ="3";
	m_sZLowSpeed ="1000";
	m_sZStep ="2000";
	m_sZHighSpeed ="5000";
	m_sZaccel ="4000";
	
	m_sAAxisNum ="4";

⌨️ 快捷键说明

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