📄 basictestdlg.cpp
字号:
if(inputdata&0x400)
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK11);
button->EnableWindow(TRUE);
button->SetCheck(1);
}
else
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK11);
button->EnableWindow(FALSE);
button->SetCheck(0);
}
if(inputdata&0x800)
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK12);
button->EnableWindow(TRUE);
button->SetCheck(1);
}
else
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK12);
button->EnableWindow(FALSE);
button->SetCheck(0);
}
if(inputdata&0x1000)
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK13);
button->EnableWindow(TRUE);
button->SetCheck(1);
}
else
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK13);
button->EnableWindow(FALSE);
button->SetCheck(0);
}
if(inputdata&0x2000)
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK14);
button->EnableWindow(TRUE);
button->SetCheck(1);
}
else
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK14);
button->EnableWindow(FALSE);
button->SetCheck(0);
}
if(inputdata&0x4000)
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK15);
button->EnableWindow(TRUE);
button->SetCheck(1);
}
else
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK15);
button->EnableWindow(FALSE);
button->SetCheck(0);
}
if(inputdata&0x8000)
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK16);
button->EnableWindow(TRUE);
button->SetCheck(1);
}
else
{
CButton *button=(CButton*)GetDlgItem(IDC_CHECK16);
button->EnableWindow(FALSE);
button->SetCheck(0);
}
if(m_bit1) //设置通用数字量输出状态
{
outputdata=outputdata|0x1;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xFFFE;
rtn=GT_ExOpt(outputdata);
}
if(m_bit2) //设置通用数字量输出状态
{
outputdata=outputdata|0x2;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xFFFD;
rtn=GT_ExOpt(outputdata);
}
if(m_bit3) //设置通用数字量输出状态
{
outputdata=outputdata|0x4;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xFFFB;
rtn=GT_ExOpt(outputdata);
}
if(m_bit4) //设置通用数字量输出状态
{
outputdata=outputdata|0x8;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xFFF7;
rtn=GT_ExOpt(outputdata);
}
if(m_bit5) //设置通用数字量输出状态
{
outputdata=outputdata|0x10;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xFFEF;
rtn=GT_ExOpt(outputdata);
}
if(m_bit6) //设置通用数字量输出状态
{
outputdata=outputdata|0x20;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xFFDF;
rtn=GT_ExOpt(outputdata);
}
if(m_bit7) //设置通用数字量输出状态
{
outputdata=outputdata|0x40;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xFFBF;
rtn=GT_ExOpt(outputdata);
}
if(m_bit8) //设置通用数字量输出状态
{
outputdata=outputdata|0x80;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xFF7F;
rtn=GT_ExOpt(outputdata);
}
if(m_bit9) //设置通用数字量输出状态
{
outputdata=outputdata|0x100;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xFEFF;
rtn=GT_ExOpt(outputdata);
}
if(m_bit10) //设置通用数字量输出状态
{
outputdata=outputdata|0x200;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xFDFF;
rtn=GT_ExOpt(outputdata);
}
if(m_bit11) //设置通用数字量输出状态
{
outputdata=outputdata|0x400;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xFBFF;
rtn=GT_ExOpt(outputdata);
}
if(m_bit12) //设置通用数字量输出状态
{
outputdata=outputdata|0x800;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xF7FF;
rtn=GT_ExOpt(outputdata);
}
if(m_bit13) //设置通用数字量输出状态
{
outputdata=outputdata|0x1000;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xEFFF;
rtn=GT_ExOpt(outputdata);
}
if(m_bit14) //设置通用数字量输出状态
{
outputdata=outputdata|0x2000;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xDFEF;
rtn=GT_ExOpt(outputdata);
}
if(m_bit15) //设置通用数字量输出状态
{
outputdata=outputdata|0x4000;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0xBFEF;
rtn=GT_ExOpt(outputdata);
}
if(m_bit16) //设置通用数字量输出状态
{
outputdata=outputdata|0x8000;
rtn=GT_ExOpt(outputdata);
}
else
{
outputdata=outputdata&0x7FEF;
rtn=GT_ExOpt(outputdata);
}
int home[4]={IDC_AXIS1_HOME_STATIC,IDC_AXIS2_HOME_STATIC,IDC_AXIS3_HOME_STATIC,
IDC_AXIS4_HOME_STATIC};
int poslimit[4]={IDC_STATIC_POSLIMIT1,IDC_STATIC_POSLIMIT2,IDC_STATIC_POSLIMIT3,
IDC_STATIC_POSLIMIT4};
int neglimit[4]={IDC_STATIC_NEGLIMIT1,IDC_STATIC_NEGLIMIT2,IDC_STATIC_NEGLIMIT3,
IDC_STATIC_NEGLIMIT4};
int erro[4]={IDC_STATIC_ERRO1,IDC_STATIC_ERRO2,IDC_STATIC_ERRO3,
IDC_STATIC_ERRO4};
//unsigned short status;
for(int axis=0;axis<4;axis++)
{
rtn=GT_Axis(axis+1);//零位信号捕获
// rtn=GT_ClrSts();
// rtn=GT_CaptHome();
rtn=GT_GetSts(&status);
if(status&0x8)
{
pstatic=(CStatic*)GetDlgItem(home[axis]);//
pstatic->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON2));
}
else
{
pstatic=(CStatic*)GetDlgItem(home[axis]);//
pstatic->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON1));
}
if(status&0x2)//伺服报警信号
{
pstatic=(CStatic*)GetDlgItem(erro[axis]);//
pstatic->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON3));
}
else
{
pstatic=(CStatic*)GetDlgItem(erro[axis]);//
pstatic->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON1));
}
if(status&0x20)//正限位信号
{
pstatic=(CStatic*)GetDlgItem(poslimit[axis]);//
pstatic->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON3));
}
else
{
pstatic=(CStatic*)GetDlgItem(poslimit[axis]);//
pstatic->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON1));
}
if(status&0x40)//负限位信号
{
pstatic=(CStatic*)GetDlgItem(neglimit[axis]);//
pstatic->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON3));
}
else
{
pstatic=(CStatic*)GetDlgItem(neglimit[axis]);//
pstatic->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON1));
}
rtn=GT_ClrSts();
}
CDialog::OnTimer(nIDEvent);
}
BEGIN_EVENTSINK_MAP(CBASICTESTDlg, CDialog)
//{{AFX_EVENTSINK_MAP(CBASICTESTDlg)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CBASICTESTDlg::OnClickOpencButton()
{
// TODO: Add your control notification handler code here
short rtn;
rtn=GT_Open();
// rtn=GT_Reset();
CButton *Bbutton=(CButton*)GetDlgItem(IDC_CLOSE_BUTTON);
Bbutton->EnableWindow(TRUE);
Bbutton=(CButton*)GetDlgItem(IDC_OPENC_BUTTON);
Bbutton->EnableWindow(FALSE);
Bbutton=(CButton*)GetDlgItem(IDC_ONSERVOC_BUTTON);
Bbutton->EnableWindow(TRUE);
Bbutton=(CButton*)GetDlgItem(IDC_OFFSERVO_BUTTON);
Bbutton->EnableWindow(FALSE);
// Bbutton=(CButton*)GetDlgItem(IDC_MODE_BUTTON);
// Bbutton->EnableWindow(FALSE);
}
void CBASICTESTDlg::OnClickOnservocButton()
{
// TODO: Add your control notification handler code here
short rtn;
//CDRAW dlg;
CButton *Bbutton=(CButton*)GetDlgItem(IDC_CLOSE_BUTTON);
Bbutton->EnableWindow(TRUE);
Bbutton=(CButton*)GetDlgItem(IDC_OPENC_BUTTON);
Bbutton->EnableWindow(FALSE);
Bbutton=(CButton*)GetDlgItem(IDC_ONSERVOC_BUTTON);
Bbutton->EnableWindow(FALSE);
Bbutton=(CButton*)GetDlgItem(IDC_OFFSERVO_BUTTON);
Bbutton->EnableWindow(TRUE);
// Bbutton=(CButton*)GetDlgItem(IDC_MODE_BUTTON);
// Bbutton->EnableWindow(TRUE);
// dlg.DoModal();
UpdateData(TRUE);
rtn=GT_LmtSns(0xff);
/* for(int i=1;i<5;i++)
{
rtn=GT_Axis(1);
rtn=GT_AxisOn();
rtn=GT_ClrSts();
}*/
switch(m_axis)/////////////////////////////轴开启
{
case 0:
rtn=GT_Axis(1);
rtn=GT_AxisOn();
rtn=GT_ClrSts();
break;
case 1:
rtn=GT_Axis(2);
rtn=GT_AxisOn();
rtn=GT_ClrSts();
break;
case 2:
rtn=GT_Axis(3);
rtn=GT_AxisOn();
rtn=GT_ClrSts();
break;
case 3:
rtn=GT_Axis(4);
rtn=GT_AxisOn();
rtn=GT_ClrSts();
break;
}
onflag=1;
CStatic* pstatic=(CStatic*)GetDlgItem(IDC_AXIS1_ON_STATIC);//初始轴1开启
pstatic->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON2));
// CStatic* perro=(CStatic*)GetDlgItem(IDC_STATIC_ERRO1);
// perro->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON3));
int m_timer=SetTimer(1,200,NULL);
ASSERT(m_timer!=0);
}
void CBASICTESTDlg::OnClickCloseButton()
{
// TODO: Add your control notification handler code here
short rtn;
rtn=GT_Close();/////////关闭控制器
CButton *Bbutton=(CButton*)GetDlgItem(IDC_CLOSE_BUTTON);
Bbutton->EnableWindow(FALSE);
Bbutton=(CButton*)GetDlgItem(IDC_OPENC_BUTTON);
Bbutton->EnableWindow(TRUE);
Bbutton=(CButton*)GetDlgItem(IDC_ONSERVOC_BUTTON);
Bbutton->EnableWindow(FALSE);
Bbutton=(CButton*)GetDlgItem(IDC_OFFSERVO_BUTTON);
Bbutton->EnableWindow(FALSE);
// Bbutton=(CButton*)GetDlgItem(IDC_MODE_BUTTON);
// Bbutton->EnableWindow(FALSE);
}
void CBASICTESTDlg::OnClickOffservoButton()
{
// TODO: Add your control notification handler code here
short rtn;
switch(m_axis)//////////////////////伺服断电
{
case 0:
rtn=GT_Axis(1);
rtn=GT_AxisOff();
break;
case 1:
rtn=GT_Axis(2);
rtn=GT_AxisOff();
break;
case 2:
rtn=GT_Axis(3);
rtn=GT_AxisOff();
break;
case 3:
rtn=GT_Axis(4);
rtn=GT_AxisOff();
break;
}
onflag=0;
CButton *Bbutton=(CButton*)GetDlgItem(IDC_CLOSE_BUTTON);
Bbutton->EnableWindow(TRUE);
Bbutton=(CButton*)GetDlgItem(IDC_OPENC_BUTTON);
Bbutton->EnableWindow(FALSE);
Bbutton=(CButton*)GetDlgItem(IDC_ONSERVOC_BUTTON);
Bbutton->EnableWindow(TRUE);
Bbutton=(CButton*)GetDlgItem(IDC_OFFSERVO_BUTTON);
Bbutton->EnableWindow(FALSE);
// Bbutton=(CButton*)GetDlgItem(IDC_MODE_BUTTON);
// Bbutton->EnableWindow(FALSE);
}
void CBASICTESTDlg::OnClickRun()
{
// TODO: Add your control notification handler code here
short rtn;
UpdateData(TRUE);///////////////////////////启动相应得轴运行
rtn=GT_Axis(m_axis+1);
rtn=GT_ClrSts();
// rtn=GT_AxisOn();
if(m_mode==1)//////S_曲线模式运行
{
rtn=GT_PrflS();
rtn=GT_SetJerk(m_jerk);
rtn=GT_SetMAcc(m_macc);
rtn=GT_SetVel(m_vel);
rtn=GT_SetPos(m_pos);
}
else
{
rtn=GT_PrflT();////T_曲线模式运行
rtn=GT_SetAcc(m_acc);
rtn=GT_SetPos(m_pos);
rtn=GT_SetVel(m_mvel);
}
rtn=GT_Update();
}
void CBASICTESTDlg::OnClickCommandStop()
{
// TODO: Add your control notification handler code here
//CDRAW dlg;
//dlg.DoModal();
short rtn;
rtn=GT_Axis(m_axis+1);/////////平滑停止轴的运动
rtn=GT_SmthStp();
rtn=GT_Update();
}
void CBASICTESTDlg::OnModeRadio()
{
// TODO: Add your control notification handler code here
m_cjerk.EnableWindow(TRUE);//S_曲线模式设置界面输入生效
m_cmacc.EnableWindow(TRUE);
m_cvel.EnableWindow(TRUE);
m_cpos.EnableWindow(TRUE);
m_cacc.EnableWindow(FALSE);
m_cmvel.EnableWindow(FALSE);
m_mode=1;
}
void CBASICTESTDlg::OnRadio5()
{
// TODO: Add your control notification handler code here
m_cjerk.EnableWindow(FALSE);/////T_曲线模式设置界面输入生效
m_cmacc.EnableWindow(FALSE);
m_cvel.EnableWindow(FALSE);
m_cpos.EnableWindow(TRUE);
m_cacc.EnableWindow(TRUE);
m_cmvel.EnableWindow(TRUE);
m_mode=2;
}
void CBASICTESTDlg::OnClickEstopCommand()
{
// TODO: Add your control notification handler code here
short rtn;
rtn=GT_Axis(m_axis+1);///////立即停止当前轴的运动
rtn=GT_AbptStp();
}
void CBASICTESTDlg::OnClickClearButton()
{
// TODO: Add your control notification handler code here
m_jerk=0;///将界面上参数设置置零
m_macc=0;
m_vel=0;
m_pos=0;
m_acc=0;
m_mvel=0;
UpdateData(FALSE);
}
void CBASICTESTDlg::OnOpencButton()
{
// TODO: Add your control notification handler code here
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -