Files
EF3-Interface/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/AnimaticsUtilityDlg.cpp
T
2013-05-09 20:29:54 +08:00

1163 lines
45 KiB
C++

// AnimaticsUtilityDlg.cpp : implementation file
//
#include "stdafx.h"
#include "afxdialogex.h"
#include "resource.h"
#include "afxwin.h"
#include "..\..\..\Animatics\Animatics_Proto.h"
#include "ProcessButton.h"
#include "AnimaticsUtilityDlg.h"
extern SmartMotor_Proto* pSmartMotor_Proto;
// AnimaticsUtilityDlg dialog
CLogger* pAnimaticsLogger=NULL;
BOOL RepeTestAxisX,RepeTestAxisY,RepeTestAxisZ,bRepeTestDone;
double RepeTestRecordStartPos[3],RepeTestRecordEndPos[3],dRepeTestFromPos,dRepeTestToPos;
//It's for repeatability test.We can judge the motion is "from" or "to" by it;
int RepeTestCnt,iRepeTestInterval,iRepeTestTimes;
//It's for repeatability test.When it is true,test has begun;and When it is false,test has stopped;
bool RepeTestBeginFlag;
//====================================================
IMPLEMENT_DYNAMIC(AnimaticsUtilityDlg, CDialog)
AnimaticsUtilityDlg::AnimaticsUtilityDlg(CWnd* pParent /*=NULL*/)
: CDialog(AnimaticsUtilityDlg::IDD, pParent)
{
}
AnimaticsUtilityDlg::~AnimaticsUtilityDlg()
{
}
void AnimaticsUtilityDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_BUTTON_ANIMATICS_MOVE_X_LEFT, MoveX_Left);
DDX_Control(pDX, IDC_BUTTON_ANIMATICS_MOVE_X_RIGHT, MoveX_Right);
DDX_Control(pDX, IDC_BUTTON_ANIMATICS_MOVE_Y_BACK, MoveY_Back);
DDX_Control(pDX, IDC_BUTTON_ANIMATICS_MOVE_Y_FRONT, MoveY_Front);
DDX_Control(pDX, IDC_BUTTON_ANIMATICS_MOVE_Z_DOWN, MoveZ_Down);
DDX_Control(pDX, IDC_BUTTON_ANIMATICS_MOVE_Z_UP, MoveZ_Up);
//
DDX_Control(pDX, IDC_EDIT_ANIMATICS_REPRETEST, RepeTestMsgOut);
DDX_Text(pDX, IDC_EDIT_REPETEST_DIS_FROM, RepeTestMoveFromDis);
DDX_Text(pDX, IDC_EDIT_REPETEST_DIS_TO, RepeTestMoveToDis);
DDX_Text(pDX, IDC_EDIT_REPETEST_TIMES, RepeTestTimes);
DDX_Text(pDX, IDC_EDIT_REPETEST_INTERVAL, RepeTestInterval);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_CMD, SmartMotorSendCmd);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_CMD_RESPONSE, SmartMotorGetResponse);
//=====================X===================
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_X1, SpeedParameterX[0]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_X1, AccelParameterX[0]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_X1, DecelParameterX[0]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_X2, SpeedParameterX[1]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_X2, AccelParameterX[1]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_X2, DecelParameterX[1]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_X3, SpeedParameterX[2]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_X3, AccelParameterX[2]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_X3, DecelParameterX[2]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_X4, SpeedParameterX[3]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_X4, AccelParameterX[3]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_X4, DecelParameterX[3]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_X5, SpeedParameterX[4]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_X5, AccelParameterX[4]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_X5, DecelParameterX[4]);
DDX_Text(pDX, IDC_EDIT_X_SCALE_COEFFICIENT, ScaleResolutionX);
DDX_Text(pDX, IDC_EDIT_NEG_WORKLIMIT_X, NegSoftLimitX);
DDX_Text(pDX, IDC_EDIT_POS_WORKLIMIT_X, PosSoftLimitX);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_MOVE_TO_X, MoveToDisX);
//=====================Y===================
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_Y1, SpeedParameterY[0]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_Y1, AccelParameterY[0]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_Y1, DecelParameterY[0]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_Y2, SpeedParameterY[1]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_Y2, AccelParameterY[1]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_Y2, DecelParameterY[1]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_Y3, SpeedParameterY[2]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_Y3, AccelParameterY[2]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_Y3, DecelParameterY[2]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_Y4, SpeedParameterY[3]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_Y4, AccelParameterY[3]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_Y4, DecelParameterY[3]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_Y5, SpeedParameterY[4]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_Y5, AccelParameterY[4]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_Y5, DecelParameterY[4]);
DDX_Text(pDX, IDC_EDIT_Y_SCALE_COEFFICIENT, ScaleResolutionY);
DDX_Text(pDX, IDC_EDIT_NEG_WORKLIMIT_Y, NegSoftLimitY);
DDX_Text(pDX, IDC_EDIT_POS_WORKLIMIT_Y, PosSoftLimitY);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_MOVE_TO_Y, MoveToDisY);
//=====================Z===================
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_Z1, SpeedParameterZ[0]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_Z1, AccelParameterZ[0]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_Z1, DecelParameterZ[0]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_Z2, SpeedParameterZ[1]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_Z2, AccelParameterZ[1]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_Z2, DecelParameterZ[1]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_Z3, SpeedParameterZ[2]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_Z3, AccelParameterZ[2]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_Z3, DecelParameterZ[2]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_Z4, SpeedParameterZ[3]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_Z4, AccelParameterZ[3]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_Z4, DecelParameterZ[3]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_SPEED_Z5, SpeedParameterZ[4]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_ACCEL_Z5, AccelParameterZ[4]);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_DECEL_Z5, DecelParameterZ[4]);
DDX_Text(pDX, IDC_EDIT_Z_SCALE_COEFFICIENT, ScaleResolutionZ);
DDX_Text(pDX, IDC_EDIT_NEG_WORKLIMIT_Z, NegSoftLimitZ);
DDX_Text(pDX, IDC_EDIT_POS_WORKLIMIT_Z, PosSoftLimitZ);
DDX_Text(pDX, IDC_EDIT_ANIMATICS_MOVE_TO_Z, MoveToDisZ);
//=============================================
}
BEGIN_MESSAGE_MAP(AnimaticsUtilityDlg, CDialog)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_BUTTON_START_ANIMATICS_MACHINE, &AnimaticsUtilityDlg::OnBnClickedButtonStartAnimaticsMachine)
ON_BN_CLICKED(IDC_BUTTON_STOP_ANIMATICS_MACHINE, &AnimaticsUtilityDlg::OnBnClickedButtonStopAnimaticsMachine)
ON_BN_CLICKED(IDCANCEL, &AnimaticsUtilityDlg::OnBnClickedCancel)
ON_EN_KILLFOCUS(IDC_EDIT_X_SCALE_COEFFICIENT, &AnimaticsUtilityDlg::OnEnKillfocusEditWorktable)
ON_EN_KILLFOCUS(IDC_EDIT_NEG_WORKLIMIT_X, &AnimaticsUtilityDlg::OnEnKillfocusEditWorktable)
ON_EN_KILLFOCUS(IDC_EDIT_POS_WORKLIMIT_X, &AnimaticsUtilityDlg::OnEnKillfocusEditWorktable)
ON_EN_KILLFOCUS(IDC_EDIT_Y_SCALE_COEFFICIENT, &AnimaticsUtilityDlg::OnEnKillfocusEditWorktable)
ON_EN_KILLFOCUS(IDC_EDIT_NEG_WORKLIMIT_Y, &AnimaticsUtilityDlg::OnEnKillfocusEditWorktable)
ON_EN_KILLFOCUS(IDC_EDIT_POS_WORKLIMIT_Y, &AnimaticsUtilityDlg::OnEnKillfocusEditWorktable)
ON_EN_KILLFOCUS(IDC_EDIT_Z_SCALE_COEFFICIENT, &AnimaticsUtilityDlg::OnEnKillfocusEditWorktable)
ON_EN_KILLFOCUS(IDC_EDIT_NEG_WORKLIMIT_Z, &AnimaticsUtilityDlg::OnEnKillfocusEditWorktable)
ON_EN_KILLFOCUS(IDC_EDIT_POS_WORKLIMIT_Z, &AnimaticsUtilityDlg::OnEnKillfocusEditWorktable)
ON_BN_CLICKED(IDC_BUTTON_ANIMATICS_MOVE_TO_XYZ, &AnimaticsUtilityDlg::OnBnClickedButtonAnimaticsMoveToXyz)
ON_BN_CLICKED(IDC_BUTTON_POS_SET_ZERO, &AnimaticsUtilityDlg::OnBnClickedButtonPosSetZero)
ON_BN_CLICKED(IDC_BUTTON_SAVE_CONFIG, &AnimaticsUtilityDlg::OnBnClickedButtonSaveConfig)
ON_BN_CLICKED(IDC_BUTTON_READ_CONFIG, &AnimaticsUtilityDlg::OnBnClickedButtonReadConfig)
ON_BN_CLICKED(IDC_RADIO_ANIMATICS_SPEED_GEAR_1, &AnimaticsUtilityDlg::OnBnClickedRadioAnimaticsSpeedGear1)
ON_BN_CLICKED(IDC_RADIO_ANIMATICS_SPEED_GEAR_2, &AnimaticsUtilityDlg::OnBnClickedRadioAnimaticsSpeedGear2)
ON_BN_CLICKED(IDC_RADIO_ANIMATICS_SPEED_GEAR_3, &AnimaticsUtilityDlg::OnBnClickedRadioAnimaticsSpeedGear3)
ON_BN_CLICKED(IDC_RADIO_ANIMATICS_SPEED_GEAR_4, &AnimaticsUtilityDlg::OnBnClickedRadioAnimaticsSpeedGear4)
ON_BN_CLICKED(IDC_BUTTON_ANIMATICS_MOVE_TO_X, &AnimaticsUtilityDlg::OnBnClickedButtonAnimaticsMoveToX)
ON_BN_CLICKED(IDC_BUTTON_ANIMATICS_MOVE_TO_Y, &AnimaticsUtilityDlg::OnBnClickedButtonAnimaticsMoveToY)
ON_BN_CLICKED(IDC_BUTTON_ANIMATICS_MOVE_TO_Z, &AnimaticsUtilityDlg::OnBnClickedButtonAnimaticsMoveToZ)
ON_EN_KILLFOCUS(IDC_EDIT_ANIMATICS_CMD, &AnimaticsUtilityDlg::OnEnKillfocusEditAnimaticsCmd)
ON_BN_CLICKED(IDC_BUTTON_BEGIN_REPE_TEST, &AnimaticsUtilityDlg::OnBnClickedButtonBeginRepeTest)
ON_BN_CLICKED(IDC_BUTTON_SAVE_REPETEST, &AnimaticsUtilityDlg::OnBnClickedButtonSaveRepetest)
ON_BN_CLICKED(IDC_BUTTON_ANIMATICS_HOME, &AnimaticsUtilityDlg::OnBnClickedButtonAnimaticsHome)
END_MESSAGE_MAP()
// AnimaticsUtilityDlg message handlers
BOOL AnimaticsUtilityDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
GetDlgItem(IDC_BUTTON_START_ANIMATICS_MACHINE)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_STOP_ANIMATICS_MACHINE)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_HOME)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_READ_CONFIG)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SAVE_CONFIG)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Z_UP)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Z_DOWN)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_X_LEFT)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_X_RIGHT)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Y_BACK)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Y_FRONT)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_X)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_Y)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_Z)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_XYZ)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SAVE_REPETEST)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_POS_SET_ZERO)->EnableWindow(false);
//===============================================================
((CButton *)GetDlgItem(IDC_RADIO_ANIMATICS_SPEED_GEAR_2))->SetCheck(TRUE);
((CButton *)GetDlgItem(IDC_RADIO_ANIMATICS_CMD_X))->SetCheck(TRUE);
((CButton *)GetDlgItem(IDC_RADIO_MOVE_TO_ABSOLUTE))->SetCheck(TRUE);
//===============================================================
m_hRed=AfxGetApp()->LoadIcon(IDI_ICON_RED);
m_hGreen=AfxGetApp()->LoadIcon(IDI_ICON_GREEN);
m_hGray=AfxGetApp()->LoadIcon(IDI_ICON_GRAY);
m_hWhite=AfxGetApp()->LoadIcon(IDI_ICON_WHITE);
m_hBlack=AfxGetApp()->LoadIcon(IDI_ICON_BLACK);
//===============================================================
RepeTestAxisX=FALSE;
RepeTestAxisY=FALSE;
RepeTestAxisZ=FALSE;
bRepeTestDone=TRUE;
dRepeTestFromPos=0.0;
dRepeTestToPos=0.0;
iRepeTestInterval=0;
iRepeTestTimes=0;
RepeTestRecordStartPos[0]=0.0;
RepeTestRecordStartPos[1]=0.0;
RepeTestRecordStartPos[2]=0.0;
RepeTestRecordEndPos[0]=0.0;
RepeTestRecordEndPos[1]=0.0;
RepeTestRecordEndPos[2]=0.0;
RepeTestCnt=-1;
RepeTestBeginFlag=false;
//===============================================================
MoveToDisX=_T("0.0");
MoveToDisY=_T("0.0");
MoveToDisZ=_T("0.0");
RepeTestMoveFromDis=_T("0");
RepeTestMoveToDis=_T("0");
RepeTestTimes=_T("0");
RepeTestInterval=_T("0");
if (!pAnimaticsLogger)
{
pAnimaticsLogger = new CLogger(_T("\\SmartMotor_DebugLog.txt"));
}
//===============================================================
return TRUE; // return TRUE unless you set the focus to a control
}
void AnimaticsUtilityDlg::OnBnClickedButtonStartAnimaticsMachine()
{
if (pSmartMotor_Proto)
{
pSmartMotor_Proto->_start_machine();
}
GetDlgItem(IDC_BUTTON_START_ANIMATICS_MACHINE)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_HOME)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_STOP_ANIMATICS_MACHINE)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_READ_CONFIG)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_SAVE_CONFIG)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Z_UP)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Z_DOWN)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_X_LEFT)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_X_RIGHT)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Y_BACK)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Y_FRONT)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_X)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_Y)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_Z)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_XYZ)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_SAVE_REPETEST)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_POS_SET_ZERO)->EnableWindow(true);
GetDlgItem(IDCANCEL)->EnableWindow(false);
SetTimer(1,150,NULL);
ShowParameterOnEdit();
ShowWorktableEdit();
}
void AnimaticsUtilityDlg::OnBnClickedButtonAnimaticsHome()
{
pSmartMotor_Proto->smartmotor_motion_Dcc_Home();
}
void AnimaticsUtilityDlg::OnBnClickedButtonStopAnimaticsMachine()
{
KillTimer(1);
KillTimer(3);
pSmartMotor_Proto->_shutdown_machine();
GetDlgItem(IDC_BUTTON_START_ANIMATICS_MACHINE)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_STOP_ANIMATICS_MACHINE)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_READ_CONFIG)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SAVE_CONFIG)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Z_UP)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Z_DOWN)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_X_LEFT)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_X_RIGHT)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Y_BACK)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_Y_FRONT)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_X)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_Y)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_Z)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_ANIMATICS_MOVE_TO_XYZ)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SAVE_REPETEST)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_POS_SET_ZERO)->EnableWindow(false);
GetDlgItem(IDCANCEL)->EnableWindow(true);
}
void AnimaticsUtilityDlg::OnBnClickedCancel()
{
if (pSmartMotor_Proto)
{
delete pSmartMotor_Proto;
pSmartMotor_Proto=nullptr;
}
if (pAnimaticsLogger)
{
delete pAnimaticsLogger;
pAnimaticsLogger=nullptr;
}
CDialog::OnCancel();
}
//===========================================================
void AnimaticsUtilityDlg::OnBnClickedButtonAnimaticsMoveToX()
{
UpdateData(TRUE);
USES_CONVERSION;
const char* cMove_to_X=T2A(MoveToDisX);
pSmartMotor_Proto->g_machine.x._d_move_dis = atof(cMove_to_X);
if (((CButton *)GetDlgItem(IDC_CHECK_ANIMATICS_REVERSE))->GetCheck())
{
pSmartMotor_Proto->g_machine.x._d_move_dis = -pSmartMotor_Proto->g_machine.x._d_move_dis;
}
if (((CButton *)GetDlgItem(IDC_RADIO_MOVE_TO_ABSOLUTE))->GetCheck())
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOX_ABS(pSmartMotor_Proto->g_machine.x._d_move_dis);
}
else if (((CButton *)GetDlgItem(IDC_RADIO_MOVE_TO_RELATIVE))->GetCheck())
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOX_REL(pSmartMotor_Proto->g_machine.x._d_move_dis);
}
}
//===========================================================
void AnimaticsUtilityDlg::OnBnClickedButtonAnimaticsMoveToY()
{
UpdateData(TRUE);
USES_CONVERSION;
const char* cMove_to_Y=T2A(MoveToDisY);
pSmartMotor_Proto->g_machine.y._d_move_dis = atof(cMove_to_Y);
if (((CButton *)GetDlgItem(IDC_CHECK_ANIMATICS_REVERSE))->GetCheck())
{
pSmartMotor_Proto->g_machine.y._d_move_dis = -pSmartMotor_Proto->g_machine.y._d_move_dis;
}
if (((CButton *)GetDlgItem(IDC_RADIO_MOVE_TO_ABSOLUTE))->GetCheck())
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOY_ABS(pSmartMotor_Proto->g_machine.y._d_move_dis);
}
else if (((CButton *)GetDlgItem(IDC_RADIO_MOVE_TO_RELATIVE))->GetCheck())
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOY_REL(pSmartMotor_Proto->g_machine.y._d_move_dis);
}
}
//===========================================================
void AnimaticsUtilityDlg::OnBnClickedButtonAnimaticsMoveToZ()
{
UpdateData(TRUE);
USES_CONVERSION;
const char* cMove_to_Z=T2A(MoveToDisZ);
pSmartMotor_Proto->g_machine.z._d_move_dis = atof(cMove_to_Z);
if (((CButton *)GetDlgItem(IDC_CHECK_ANIMATICS_REVERSE))->GetCheck())
{
pSmartMotor_Proto->g_machine.z._d_move_dis = -pSmartMotor_Proto->g_machine.z._d_move_dis;
}
if (((CButton *)GetDlgItem(IDC_RADIO_MOVE_TO_ABSOLUTE))->GetCheck())
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOZ_ABS(pSmartMotor_Proto->g_machine.z._d_move_dis);
}
else if (((CButton *)GetDlgItem(IDC_RADIO_MOVE_TO_RELATIVE))->GetCheck())
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOZ_REL(pSmartMotor_Proto->g_machine.z._d_move_dis);
}
}
//===========================================================
void AnimaticsUtilityDlg::OnBnClickedButtonAnimaticsMoveToXyz()
{
UpdateData(TRUE);
USES_CONVERSION;
const char* cMove_to_X=T2A(MoveToDisX);
const char* cMove_to_Y=T2A(MoveToDisY);
const char* cMove_to_Z=T2A(MoveToDisZ);
pSmartMotor_Proto->g_machine.x._d_move_dis = atof(cMove_to_X);
pSmartMotor_Proto->g_machine.y._d_move_dis = atof(cMove_to_Y);
pSmartMotor_Proto->g_machine.z._d_move_dis = atof(cMove_to_Z);
if (((CButton *)GetDlgItem(IDC_CHECK_ANIMATICS_REVERSE))->GetCheck())
{
pSmartMotor_Proto->g_machine.x._d_move_dis = -pSmartMotor_Proto->g_machine.x._d_move_dis;
pSmartMotor_Proto->g_machine.y._d_move_dis = -pSmartMotor_Proto->g_machine.y._d_move_dis;
pSmartMotor_Proto->g_machine.z._d_move_dis = -pSmartMotor_Proto->g_machine.z._d_move_dis;
}
if (((CButton *)GetDlgItem(IDC_RADIO_MOVE_TO_ABSOLUTE))->GetCheck())
{
pSmartMotor_Proto->smartmotor_motion_set_position_xyz(pSmartMotor_Proto->g_machine.x._d_move_dis, pSmartMotor_Proto->g_machine.y._d_move_dis, pSmartMotor_Proto->g_machine.z._d_move_dis ,false);
}
else if (((CButton *)GetDlgItem(IDC_RADIO_MOVE_TO_RELATIVE))->GetCheck())
{
pSmartMotor_Proto->smartmotor_motion_move_rel_dis_xyz(pSmartMotor_Proto->g_machine.x._d_move_dis, pSmartMotor_Proto->g_machine.y._d_move_dis, pSmartMotor_Proto->g_machine.z._d_move_dis ,false);
}
}
//===========================================================
void AnimaticsUtilityDlg::OnBnClickedButtonPosSetZero()
{
double XPos(0.0),YPos(0.0),ZPos(0.0);
pSmartMotor_Proto->smartmotor_motion_get_position_xyz(XPos,YPos,ZPos);
pSmartMotor_Proto->g_machine.x._lSet_Zero_Pos=pSmartMotor_Proto->g_machine.x._l_cur_pos;
pSmartMotor_Proto->g_machine.x._dSet_Zero_Pos=pSmartMotor_Proto->g_machine.x._d_cur_pos;
pSmartMotor_Proto->g_machine.y._lSet_Zero_Pos=pSmartMotor_Proto->g_machine.y._l_cur_pos;
pSmartMotor_Proto->g_machine.y._dSet_Zero_Pos=pSmartMotor_Proto->g_machine.y._d_cur_pos;
pSmartMotor_Proto->g_machine.z._lSet_Zero_Pos=pSmartMotor_Proto->g_machine.z._l_cur_pos;
pSmartMotor_Proto->g_machine.z._dSet_Zero_Pos=pSmartMotor_Proto->g_machine.z._d_cur_pos;
}
//===========================================================
void AnimaticsUtilityDlg::OnBnClickedButtonSaveConfig()
{
ChangeParameterOnEdit();
pSmartMotor_Proto->SaveSmartMotorConfig();
}
//===========================================================
void AnimaticsUtilityDlg::OnBnClickedButtonReadConfig()
{
pSmartMotor_Proto->LoadSmartMotorConfig();
ShowParameterOnEdit();
}
//===========================================================
void AnimaticsUtilityDlg::OnBnClickedRadioAnimaticsSpeedGear1()
{
pSmartMotor_Proto->g_machine.x._Move_Speed_Gear=0;
pSmartMotor_Proto->g_machine.y._Move_Speed_Gear=0;
pSmartMotor_Proto->g_machine.z._Move_Speed_Gear=0;
}
//===========================================================
void AnimaticsUtilityDlg::OnBnClickedRadioAnimaticsSpeedGear2()
{
pSmartMotor_Proto->g_machine.x._Move_Speed_Gear=1;
pSmartMotor_Proto->g_machine.y._Move_Speed_Gear=1;
pSmartMotor_Proto->g_machine.z._Move_Speed_Gear=1;
}
//===========================================================
void AnimaticsUtilityDlg::OnBnClickedRadioAnimaticsSpeedGear3()
{
pSmartMotor_Proto->g_machine.x._Move_Speed_Gear=2;
pSmartMotor_Proto->g_machine.y._Move_Speed_Gear=2;
pSmartMotor_Proto->g_machine.z._Move_Speed_Gear=2;
}
//===========================================================
void AnimaticsUtilityDlg::OnBnClickedRadioAnimaticsSpeedGear4()
{
pSmartMotor_Proto->g_machine.x._Move_Speed_Gear=3;
pSmartMotor_Proto->g_machine.y._Move_Speed_Gear=3;
pSmartMotor_Proto->g_machine.z._Move_Speed_Gear=3;
}
//===========================================================
void AnimaticsUtilityDlg::OnEnKillfocusEditAnimaticsCmd()
{
UpdateData(TRUE);
USES_CONVERSION;
if (((CButton *)GetDlgItem(IDC_RADIO_ANIMATICS_CMD_X))->GetCheck())
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_COMM_CMDX(SmartMotorSendCmd);
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_GET_COMM_RESPONSEX(SmartMotorGetResponse);
}
else if (((CButton *)GetDlgItem(IDC_RADIO_ANIMATICS_CMD_Y))->GetCheck())
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_COMM_CMDY(SmartMotorSendCmd);
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_GET_COMM_RESPONSEY(SmartMotorGetResponse);
}
else if (((CButton *)GetDlgItem(IDC_RADIO_ANIMATICS_CMD_Z))->GetCheck())
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_COMM_CMDZ(SmartMotorSendCmd);
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_GET_COMM_RESPONSEZ(SmartMotorGetResponse);
}
UpdateData(FALSE);
}
//================================================================================================
void AnimaticsUtilityDlg::OnTimer(UINT_PTR nIDEvent)
{
USES_CONVERSION;
switch(nIDEvent)
{
case 1:
{
if (pSmartMotor_Proto)
{
double XPos(0.0),YPos(0.0),ZPos(0.0);
pSmartMotor_Proto->smartmotor_motion_get_position_xyz(XPos,YPos,ZPos);
PosPulseX.Format(_T("%8ld"),(pSmartMotor_Proto->g_machine.x._l_cur_pos));
PosPulseY.Format(_T("%8ld"),(pSmartMotor_Proto->g_machine.y._l_cur_pos));
PosPulseZ.Format(_T("%8ld"),(pSmartMotor_Proto->g_machine.z._l_cur_pos));
GetDlgItem(IDC_EDIT_X_POS)->SetWindowText(PosPulseX);
GetDlgItem(IDC_EDIT_Y_POS)->SetWindowText(PosPulseY);
GetDlgItem(IDC_EDIT_Z_POS)->SetWindowText(PosPulseZ);
PosmmX.Format(_T("%8.4lf"),(pSmartMotor_Proto->g_machine.x._d_cur_pos));
PosmmY.Format(_T("%8.4lf"),(pSmartMotor_Proto->g_machine.y._d_cur_pos));
PosmmZ.Format(_T("%8.4lf"),(pSmartMotor_Proto->g_machine.z._d_cur_pos));
GetDlgItem(IDC_EDIT_X_POS_MM)->SetWindowText(PosmmX);
GetDlgItem(IDC_EDIT_Y_POS_MM)->SetWindowText(PosmmY);
GetDlgItem(IDC_EDIT_Z_POS_MM)->SetWindowText(PosmmZ);
PosmmChangedX.Format(_T("%8.4lf"),(pSmartMotor_Proto->g_machine.x._d_cur_pos-pSmartMotor_Proto->g_machine.x._dSet_Zero_Pos));
PosmmChangedY.Format(_T("%8.4lf"),(pSmartMotor_Proto->g_machine.y._d_cur_pos-pSmartMotor_Proto->g_machine.y._dSet_Zero_Pos));
PosmmChangedZ.Format(_T("%8.4lf"),(pSmartMotor_Proto->g_machine.z._d_cur_pos-pSmartMotor_Proto->g_machine.z._dSet_Zero_Pos));
GetDlgItem(IDC_EDIT_X_POS_MM_CHANGE)->SetWindowText(PosmmChangedX);
GetDlgItem(IDC_EDIT_Y_POS_MM_CHANGE)->SetWindowText(PosmmChangedY);
GetDlgItem(IDC_EDIT_Z_POS_MM_CHANGE)->SetWindowText(PosmmChangedZ);
//====================================================
if (pSmartMotor_Proto->m_bHomingActive)
{
pSmartMotor_Proto->smartmotor_motion_get_home_status();
pSmartMotor_Proto->smartmotor_motion_IS_Homed();
if(pSmartMotor_Proto->g_machine.s_status._bXHomed)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_HOME_X))->SetIcon(m_hGreen);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_HOME_X))->SetIcon(m_hRed);
}
if(pSmartMotor_Proto->g_machine.s_status._bYHomed)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_HOME_Y))->SetIcon(m_hGreen);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_HOME_Y))->SetIcon(m_hRed);
}
if(pSmartMotor_Proto->g_machine.s_status._bZHomed)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_HOME_z))->SetIcon(m_hGreen);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_HOME_z))->SetIcon(m_hRed);
}
}
//====================================================
pSmartMotor_Proto->smartmotor_motion_get_motion_status();
if (pSmartMotor_Proto->g_machine.s_status._bXMoving)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOVING_X))->SetIcon(m_hRed);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOVING_X))->SetIcon(m_hGreen);
}
//-----------------------------------------------------
if (pSmartMotor_Proto->g_machine.s_status._bYMoving)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOVING_Y))->SetIcon(m_hRed);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOVING_Y))->SetIcon(m_hGreen);
}
//------------------------------------------------------
if (pSmartMotor_Proto->g_machine.s_status._bZMoving)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOVING_Z))->SetIcon(m_hRed);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOVING_Z))->SetIcon(m_hGreen);
}
//====================================================
pSmartMotor_Proto->smartmotor_motion_get_status_word();
//------------------------------------------------------
ShowMotorStatusX();
ShowMotorStatusY();
ShowMotorStatusZ();
//====================================================
if(!bRepeTestDone)
{
if (!pSmartMotor_Proto->g_machine.s_status._bXYZMoving)
{
pAnimaticsLogger->SendAndFlush(_T("[Move Done]bRepeTestDone=%d; RepeTestBeginFlag=%d \r\n"),bRepeTestDone,RepeTestBeginFlag);
if(RepeTestBeginFlag)
{
bRepeTestDone=TRUE;
SetTimer(3,iRepeTestInterval,NULL);
}
else
{
bRepeTestDone=TRUE;
MsgX=_T("");
MsgY=_T("");
MsgZ=_T("");
((CButton*)GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST))->SetWindowTextW(_T("Begin"));
}
}
}
}
break;
}
case 3:
{
if (RepeTestBeginFlag)
{
bRepeTestDone=TRUE;
SmartMotorRepeTest();
}
else
{
bRepeTestDone=TRUE;
MsgX=_T("");
MsgY=_T("");
MsgZ=_T("");
((CButton*)GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST))->SetWindowTextW(_T("Begin"));
}
KillTimer(3);
break;
}
}
CDialog::OnTimer(nIDEvent);
}
//=====================================================================================
void AnimaticsUtilityDlg::OnBnClickedButtonBeginRepeTest()
{
UpdateData(TRUE);
USES_CONVERSION;
const char* cTmp;
cTmp=T2A(RepeTestMoveFromDis);
dRepeTestFromPos = atof(cTmp);
cTmp=T2A(RepeTestMoveToDis);
dRepeTestToPos = atof(cTmp);
cTmp=T2A(RepeTestTimes);
iRepeTestTimes = atoi(cTmp);
cTmp=T2A(RepeTestInterval);
iRepeTestInterval = atoi(cTmp);
if (RepeTestBeginFlag)
{
RepeTestBeginFlag=false;
pSmartMotor_Proto->smartmotor_motion_stop_xyz();
bRepeTestDone=FALSE;
((CButton*)GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST))->SetWindowTextW(_T("Begin"));
}
else
{
RepeTestBeginFlag=true;
RepeTestCnt=-1;
MsgX=_T("");
MsgY=_T("");
MsgZ=_T("");
GetDlgItem(IDC_EDIT_REPRETEST)->SetWindowTextW(MsgZ);
RepeTestRecordStartPos[0]=0;
RepeTestRecordStartPos[1]=0;
RepeTestRecordStartPos[2]=0;
RepeTestRecordEndPos[0]=0;
RepeTestRecordEndPos[1]=0;
RepeTestRecordEndPos[2]=0;
pAnimaticsLogger->SendAndFlush(_T("[RepeTest] From: %f;To:%f; Times:%d; Interval:%d \r\n"),dRepeTestFromPos,dRepeTestToPos,iRepeTestTimes,iRepeTestInterval);
RepeTestAxisX = ((CButton *)GetDlgItem(IDC_CHECK_REPETESTX))->GetCheck();
RepeTestAxisY = ((CButton *)GetDlgItem(IDC_CHECK_REPETESTY))->GetCheck();
RepeTestAxisZ = ((CButton *)GetDlgItem(IDC_CHECK_REPETESTZ))->GetCheck();
bRepeTestDone=TRUE;
SmartMotorRepeTest();
((CButton*)GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST))->SetWindowTextW(_T("Stop"));
}
}
//=====================================================================================
BOOL AnimaticsUtilityDlg::SmartMotorRepeTest()
{
UpdateData(TRUE);
CString csTemp;
if (RepeTestCnt<iRepeTestTimes*2)
{
if (bRepeTestDone)
{
if (RepeTestCnt==-1)
{
if (RepeTestAxisX)
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOX_ABS(dRepeTestFromPos);
}
if (RepeTestAxisY)
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOY_ABS(dRepeTestFromPos);
}
if(RepeTestAxisZ)
{
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOZ_ABS(dRepeTestFromPos);
}
}
else
{
if (RepeTestCnt%2 == 0)
{
if (RepeTestAxisX)
{
MsgX.Format(_T("[%2d] X: From: % .4f "),RepeTestCnt/2+1,pSmartMotor_Proto->g_machine.x._d_cur_pos);
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOX_ABS(dRepeTestToPos);
}
if (RepeTestAxisY)
{
MsgY.Format(_T("[%2d] Y: From: % .4f "),RepeTestCnt/2+1,pSmartMotor_Proto->g_machine.y._d_cur_pos);
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOY_ABS(dRepeTestToPos);
}
if(RepeTestAxisZ)
{
MsgZ.Format(_T("[%2d] Z: From: % .4f "),RepeTestCnt/2+1,pSmartMotor_Proto->g_machine.z._d_cur_pos);
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOZ_ABS(dRepeTestToPos);
}
}
else if(RepeTestCnt%2 == 1)
{
if (RepeTestAxisX)
{
csTemp.Format(_T("To: % 3.4f \r\n"),pSmartMotor_Proto->g_machine.x._d_cur_pos);
MsgX+=csTemp;
OutputWithScroll(MsgX,RepeTestMsgOut);
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOX_ABS(dRepeTestFromPos);
}
if (RepeTestAxisY)
{
csTemp.Format(_T("To: % 3.4f \r\n"),pSmartMotor_Proto->g_machine.y._d_cur_pos);
MsgY+=csTemp;
OutputWithScroll(MsgY,RepeTestMsgOut);
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOY_ABS(dRepeTestFromPos);
}
if(RepeTestAxisZ)
{
csTemp.Format(_T("To: % 3.4f \r\n"),pSmartMotor_Proto->g_machine.z._d_cur_pos);
MsgZ+=csTemp;
OutputWithScroll(MsgZ,RepeTestMsgOut);
pSmartMotor_Proto->_send_cmd_SMARTMOTOR_MOVETOZ_ABS(dRepeTestFromPos);
}
}
}
bRepeTestDone=false;
RepeTestCnt++;
}
}
else
{
MsgX=_T("");
MsgY=_T("");
MsgZ=_T("");
((CButton*)GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST))->SetWindowTextW(_T("Begin"));
}
return TRUE;
}
//=====================================================================================
void AnimaticsUtilityDlg::OnBnClickedButtonSaveRepetest()
{
USES_CONVERSION;
UpdateData(TRUE);
CString FileName;
CString PathName;
FILE* m_pOutFile;
FileName=_T("RepeTest.txt");
CString szFilter=_T("TXT Files(*.txt)|*.txt|ALL Files(*.*)|*.*||");
CFileDialog fdlg(FALSE,_T("INI"),FileName,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter);
if( fdlg.DoModal()==IDOK)
{
const char* outBuff=NULL;
PathName=fdlg.GetPathName();
_wfopen_s(&m_pOutFile, PathName, _T("wt"));
if (!m_pOutFile)
{
MessageBox( _T("File name Error."), _T("Message"), MB_OK);
};
CString MsgOut;
RepeTestMsgOut.GetWindowText(MsgOut);
outBuff=T2A(MsgOut);
fprintf(m_pOutFile,"%s", outBuff);
fclose(m_pOutFile);
}
delete fdlg;
}
//=====================================================================================
//Print message on edit control
void AnimaticsUtilityDlg::OutputWithScroll(const CString &strNewText,CEdit &edtOutput)
{
CString strOutput;
edtOutput.GetWindowText(strOutput);
strOutput += strNewText;
//if ("/r/n" != strOutput.Right(2))
//{
// strOutput += "/r/n";
//}
int iCount = strOutput.GetLength();
edtOutput.SetRedraw(FALSE);
edtOutput.SetWindowText(strOutput);
int iLine = edtOutput.GetLineCount();
edtOutput.LineScroll(iLine, 0);
edtOutput.SetSel(iCount, iCount);
edtOutput.SetRedraw(TRUE);
}
//================================================================
void AnimaticsUtilityDlg::ChangeParameterOnEdit()
{
UpdateData(TRUE);
USES_CONVERSION;
const char* cSpeedX;
const char* cSpeedY;
const char* cSpeedZ;
for(INT i=0;i<5;i++)
{
cSpeedX=T2A(SpeedParameterX[i]);
pSmartMotor_Proto->g_machine.s_machine_config.x_axis._speed_[i]=atoi(cSpeedX);
cSpeedX=T2A(AccelParameterX[i]);
pSmartMotor_Proto->g_machine.s_machine_config.x_axis._accel_[i]=atoi(cSpeedX);
cSpeedX=T2A(DecelParameterX[i]);
pSmartMotor_Proto->g_machine.s_machine_config.x_axis._decel_[i]=atoi(cSpeedX);
cSpeedY=T2A(SpeedParameterY[i]);
pSmartMotor_Proto->g_machine.s_machine_config.y_axis._speed_[i]=atoi(cSpeedY);
cSpeedY=T2A(AccelParameterY[i]);
pSmartMotor_Proto->g_machine.s_machine_config.y_axis._accel_[i]=atoi(cSpeedY);
cSpeedY=T2A(DecelParameterY[i]);
pSmartMotor_Proto->g_machine.s_machine_config.y_axis._decel_[i]=atoi(cSpeedY);
cSpeedZ=T2A(SpeedParameterZ[i]);
pSmartMotor_Proto->g_machine.s_machine_config.z_axis._speed_[i]=atoi(cSpeedZ);
cSpeedZ=T2A(AccelParameterZ[i]);
pSmartMotor_Proto->g_machine.s_machine_config.z_axis._accel_[i]=atoi(cSpeedZ);
cSpeedZ=T2A(DecelParameterZ[i]);
pSmartMotor_Proto->g_machine.s_machine_config.z_axis._decel_[i]=atoi(cSpeedZ);
}
}
//================================================================
void AnimaticsUtilityDlg::ShowParameterOnEdit()
{
for(INT i=0;i<5;i++)
{
SpeedParameterX[i].Format(_T("%d"),(pSmartMotor_Proto->g_machine.s_machine_config.x_axis._speed_[i]));
AccelParameterX[i].Format(_T("%d"),(pSmartMotor_Proto->g_machine.s_machine_config.x_axis._accel_[i]));
DecelParameterX[i].Format(_T("%d"),(pSmartMotor_Proto->g_machine.s_machine_config.x_axis._decel_[i]));
SpeedParameterY[i].Format(_T("%d"),(pSmartMotor_Proto->g_machine.s_machine_config.y_axis._speed_[i]));
AccelParameterY[i].Format(_T("%d"),(pSmartMotor_Proto->g_machine.s_machine_config.y_axis._accel_[i]));
DecelParameterY[i].Format(_T("%d"),(pSmartMotor_Proto->g_machine.s_machine_config.y_axis._decel_[i]));
SpeedParameterZ[i].Format(_T("%d"),(pSmartMotor_Proto->g_machine.s_machine_config.z_axis._speed_[i]));
AccelParameterZ[i].Format(_T("%d"),(pSmartMotor_Proto->g_machine.s_machine_config.z_axis._accel_[i]));
DecelParameterZ[i].Format(_T("%d"),(pSmartMotor_Proto->g_machine.s_machine_config.z_axis._decel_[i]));
}
UpdateData(FALSE);
}
//========================================================
void AnimaticsUtilityDlg::OnEnKillfocusEditWorktable()
{
UpdateData(TRUE);
USES_CONVERSION;
const char* cTmp;
cTmp=T2A(ScaleResolutionX);
pSmartMotor_Proto->g_machine.s_machine_config.x_axis._scale_resolution=atof(cTmp);
cTmp=T2A(NegSoftLimitX);
pSmartMotor_Proto->g_machine.s_machine_config.x_axis._neg_working_limit=atof(cTmp);
cTmp=T2A(PosSoftLimitX);
pSmartMotor_Proto->g_machine.s_machine_config.x_axis._pos_working_limit=atof(cTmp);
cTmp=T2A(ScaleResolutionY);
pSmartMotor_Proto->g_machine.s_machine_config.y_axis._scale_resolution=atof(cTmp);
cTmp=T2A(NegSoftLimitY);
pSmartMotor_Proto->g_machine.s_machine_config.y_axis._neg_working_limit=atof(cTmp);
cTmp=T2A(PosSoftLimitY);
pSmartMotor_Proto->g_machine.s_machine_config.y_axis._pos_working_limit=atof(cTmp);
cTmp=T2A(ScaleResolutionZ);
pSmartMotor_Proto->g_machine.s_machine_config.z_axis._scale_resolution=atof(cTmp);
cTmp=T2A(NegSoftLimitZ);
pSmartMotor_Proto->g_machine.s_machine_config.z_axis._neg_working_limit=atof(cTmp);
cTmp=T2A(PosSoftLimitZ);
pSmartMotor_Proto->g_machine.s_machine_config.z_axis._pos_working_limit=atof(cTmp);
}
//========================================================
void AnimaticsUtilityDlg::ShowWorktableEdit()
{
ScaleResolutionX.Format(_T("%.4f"),pSmartMotor_Proto->g_machine.s_machine_config.x_axis._scale_resolution);
NegSoftLimitX.Format(_T("%.4f"),pSmartMotor_Proto->g_machine.s_machine_config.x_axis._neg_working_limit);
PosSoftLimitX.Format(_T("%.4f"),pSmartMotor_Proto->g_machine.s_machine_config.x_axis._pos_working_limit);
ScaleResolutionY.Format(_T("%.4f"),pSmartMotor_Proto->g_machine.s_machine_config.y_axis._scale_resolution);
NegSoftLimitY.Format(_T("%.4f"),pSmartMotor_Proto->g_machine.s_machine_config.y_axis._neg_working_limit);
PosSoftLimitY.Format(_T("%.4f"),pSmartMotor_Proto->g_machine.s_machine_config.y_axis._pos_working_limit);
ScaleResolutionZ.Format(_T("%.4f"),pSmartMotor_Proto->g_machine.s_machine_config.z_axis._scale_resolution);
NegSoftLimitZ.Format(_T("%.4f"),pSmartMotor_Proto->g_machine.s_machine_config.z_axis._neg_working_limit);
PosSoftLimitZ.Format(_T("%.4f"),pSmartMotor_Proto->g_machine.s_machine_config.z_axis._pos_working_limit);
UpdateData(FALSE);
}
//===========================================================
void AnimaticsUtilityDlg::ShowMotorStatusX()
{
//=====================status word==================================
if (pSmartMotor_Proto->g_machine.x.s_machine_status.DriverRdy)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_DRIVER_RDY_X))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_DRIVER_RDY_X))->SetIcon(m_hBlack);
}
//------------------------------------------------------
if (pSmartMotor_Proto->g_machine.x.s_machine_status.MotorOff)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOTOR_OFF_X))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOTOR_OFF_X))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.x.s_machine_status.VoltageFault)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_VOLFAULT_X))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_VOLFAULT_X))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.x.s_machine_status.PosErr)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSERR_X))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSERR_X))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.x.s_machine_status.OverHeat)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_OVERHEAT_X))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_OVERHEAT_X))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.x.s_machine_status.NegLimit)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_NEGLIMIT_X))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_NEGLIMIT_X))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.x.s_machine_status.PosLimit)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSLIMIT_X))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSLIMIT_X))->SetIcon(m_hBlack);
}
}
//===========================================================
void AnimaticsUtilityDlg::ShowMotorStatusY()
{
//=====================status word==================================
if (pSmartMotor_Proto->g_machine.y.s_machine_status.DriverRdy)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_DRIVER_RDY_Y))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_DRIVER_RDY_Y))->SetIcon(m_hBlack);
}
//------------------------------------------------------
if (pSmartMotor_Proto->g_machine.y.s_machine_status.MotorOff)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOTOR_OFF_Y))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOTOR_OFF_Y))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.y.s_machine_status.VoltageFault)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_VOLFAULT_Y))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_VOLFAULT_Y))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.y.s_machine_status.PosErr)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSERR_Y))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSERR_Y))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.y.s_machine_status.OverHeat)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_OVERHEAT_Y))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_OVERHEAT_Y))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.y.s_machine_status.NegLimit)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_NEGLIMIT_Y))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_NEGLIMIT_Y))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.y.s_machine_status.PosLimit)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSLIMIT_Y))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSLIMIT_Y))->SetIcon(m_hBlack);
}
}
//===========================================================
void AnimaticsUtilityDlg::ShowMotorStatusZ()
{
//=====================status word==================================
if (pSmartMotor_Proto->g_machine.z.s_machine_status.DriverRdy)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_DRIVER_RDY_Z))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_DRIVER_RDY_Z))->SetIcon(m_hBlack);
}
//------------------------------------------------------
if (pSmartMotor_Proto->g_machine.z.s_machine_status.MotorOff)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOTOR_OFF_Z))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_MOTOR_OFF_Z))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.z.s_machine_status.VoltageFault)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_VOLFAULT_Z))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_VOLFAULT_Z))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.z.s_machine_status.PosErr)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSERR_Z))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSERR_Z))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.z.s_machine_status.OverHeat)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_OVERHEAT_Z))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_OVERHEAT_Z))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.z.s_machine_status.NegLimit)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_NEGLIMIT_Z))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_NEGLIMIT_Z))->SetIcon(m_hBlack);
} //------------------------------------------------------
if (pSmartMotor_Proto->g_machine.z.s_machine_status.PosLimit)
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSLIMIT_Z))->SetIcon(m_hWhite);
}
else
{
((CButton*)GetDlgItem(IDC_BUTTON_STATUS_POSLIMIT_Z))->SetIcon(m_hBlack);
}
}