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