用MFC做一个GTS jog运动的Demo

       jog运动是测试轴是否能正常动作的必备运动模式,jog运动只需要设置加减速和速度即可,用速度参数的正负来控制正负向运动。

jog运动界面

 

接下来就教你怎么实现这个demo,还不熟悉怎么创建项目,怎么使用MFC基本控件的朋友,可以参考文章:

使用MFC写一个GTS点位运动的Demo

1.修改正负运动按钮的ID

 

jog运动控件布局

 

2. 定义JOG运动函数

 

// GTSJogDlg.cpp: 实现文件

        short sRtn;
	JogPrm jog;

	sRtn = GT_PrfJog(cardNum,axisNum); //把轴设置为jog运动模式
	commandhandler("GT_PrfJog", sRtn);
	sRtn = GT_GetJogPrm(cardNum, axisNum, &jog);
	commandhandler("GT_GetJogPrm", sRtn);
	jog.acc = acc;
	jog.dec = dec;
	jog.smooth = smooth;
	sRtn = GT_SetJogPrm(cardNum, axisNum, &jog); //设置jog运动参数
	commandhandler("GT_SetJogPrm", sRtn);
	sRtn = GT_SetVel(cardNum, axisNum, vel);
	commandhandler("GT_SetVel", sRtn);             //设置jog运动速度
	sRtn = GT_Update(cardNum, 1 << (axisNum-1));  //启动运动
	commandhandler("GT_Update", sRtn);

3. 定义拦截鼠标事件的函数

// GTSJogDlg.cpp: 实现文件

BOOL CGTSJogDlg::PreTranslateMessage(MSG* pMsg) 
{
	int buID;
	short sRtn = 0;
	UpdateData(TRUE);
	
	buID = GetWindowLong(pMsg->hwnd, GWL_ID);//获取按钮ID

	if (pMsg->message == WM_LBUTTONDOWN)//拦截鼠标左键长按消息
	{
		if (buID == IDC_JOGP) //如果是正向运动按钮
		{
			JogMotion(cardNum,axisNum, m_jogAcc, m_jogDec, m_jogVel,m_smooth);
		}
		if (buID == IDC_JOGN)//如果是负向运动按钮
		{

			JogMotion(cardNum, axisNum, m_jogAcc, m_jogDec, -1*m_jogVel, m_smooth);
		}
	}
	if (pMsg->message == WM_LBUTTONUP)//拦截鼠标左键抬起消息
	{
		if (buID == IDC_JOGP || buID == IDC_JOGN) //正向和负向任意一个按钮
		{
			JogMotion(cardNum, axisNum, m_jogAcc, m_jogDec,0, m_smooth);
		}
	}
	return CDialog::PreTranslateMessage(pMsg); //一定要有,其他消息系统默认处理
}

就是这么简单,下课!

需要demo源码和PDF教程请下载附件!

 

我也是有底线哒~
用MFC做一个GTS jog运动的Demo-工控吧!
用MFC做一个GTS jog运动的Demo
此内容为付费资源,请付费后查看
2.99
付费资源
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容