📄 motordlgrigid.cpp
字号:
// MotorDlgRigid.cpp : implementation file
//
#include "stdafx.h"
#include "TestForm.h"
#include "MotorDlgRigid.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// MotorDlgRigid dialog
MotorDlgRigid::MotorDlgRigid(CWnd* pParent /*=NULL*/)
: CDialog(MotorDlgRigid::IDD, pParent)
{
//{{AFX_DATA_INIT(MotorDlgRigid)
m_dModlgrigArm = 0.0;
m_nModlgrigNumber = 0;
m_dModlgrigWeight = 0.0;
m_dModlgrigUnweight = 0.0;
//}}AFX_DATA_INIT
/*布尔变量初始化*/
m_bModlgrigInitflag =FALSE; //未进行设备自检
/*浮点数变量初始化*/
m_dModlgrigTorque=0.0;//当前转矩大小
m_dModlgrigTweight=0.0;//当前所承总重量
}
void MotorDlgRigid::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(MotorDlgRigid)
DDX_Control(pDX, IDC_BUMODLGRIG_ULCAN, m_cModlgrigUlcan);
DDX_Control(pDX, IDC_BUMODLGRIG_LCAN, m_cModlgrigLcan);
DDX_Control(pDX, IDC_EDMODLGRIG_WEIGHT, m_cModlgrigWeight);
DDX_Control(pDX, IDC_BUMODLGRIG_UNLOAD, m_cModlgrigUnload);
DDX_Control(pDX, IDC_BUMODLGRIG_LOAD, m_cModlgrigLoad);
DDX_Control(pDX, IDC_EDMODLGRIG_UNWEIGHT, m_cModlgrigUnweight);
DDX_Text(pDX, IDC_EDMODLGRIG_ARM, m_dModlgrigArm);
DDX_Text(pDX, IDC_EDMODLGRIG_NUMBER, m_nModlgrigNumber);
DDX_Text(pDX, IDC_EDMODLGRIG_WEIGHT, m_dModlgrigWeight);
DDX_Text(pDX, IDC_EDMODLGRIG_UNWEIGHT, m_dModlgrigUnweight);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(MotorDlgRigid, CDialog)
//{{AFX_MSG_MAP(MotorDlgRigid)
ON_BN_CLICKED(IDC_BUMODLGRIG_INIT, OnBumodlgrigInit)
ON_BN_CLICKED(IDC_BUMODLGRIG_START, OnBumodlgrigStart)
ON_BN_CLICKED(IDC_BUMODLGRIG_STOP, OnBumodlgrigStop)
ON_BN_CLICKED(IDC_BUMODLGRIG_FINISH, OnBumodlgrigFinish)
ON_BN_CLICKED(IDC_BUMODLGRIG_LOAD, OnBumodlgrigLoad)
ON_BN_CLICKED(IDC_BUMODLGRIG_UNLOAD, OnBumodlgrigUnload)
ON_BN_CLICKED(IDC_BUMODLGRIG_LCAN, OnBumodlgrigLcan)
ON_BN_CLICKED(IDC_BUMODLGRIG_ULCAN, OnBumodlgrigUlcan)
//手动添加,编码器读取数据达到设定值的消息响应函数
ON_MESSAGE(WM_CODERDAQ_FINISH,OnCoderDaqFinish)
ON_MESSAGE(WM_OPENDATA,OnOpendata)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// MotorDlgRigid message handlers
////////////////////////////////////
BOOL MotorDlgRigid::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
////----------------------------------------------////
/*初始时单次试验操作不能进行*/
m_cModlgrigWeight.EnableWindow(FALSE);//加载编辑框无效
m_cModlgrigLoad.EnableWindow(FALSE);//加载按钮无效
m_cModlgrigLcan.EnableWindow(FALSE);//取消加载按钮无效
m_cModlgrigUnweight.EnableWindow(FALSE);//卸载编辑框无效
m_cModlgrigUnload.EnableWindow(FALSE);//卸载按钮无效
m_cModlgrigUlcan.EnableWindow(FALSE);//取消卸载按钮无效
////----------------------------------------------////
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//设备自检
void MotorDlgRigid::OnBumodlgrigInit()
{
// TODO: Add your control notification handler code here
m_bModlgrigInitflag =TRUE;//设备自检完成
}
//开始试验
void MotorDlgRigid::OnBumodlgrigStart()
{
// TODO: Add your control notification handler code here
if (m_bModlgrigInitflag)//设备自检完成
{
//读取控制面板参数
UpdateData(TRUE);
CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();
//开始试验时,加载操作有效
m_cModlgrigWeight.EnableWindow(TRUE);//加载编辑框有效
m_cModlgrigLoad.EnableWindow(TRUE);//加载按钮有效
//发送消息给画图窗口
pApp->pCTestFormView->rigidDrawDlg.PostMessage(WM_MOTDLGRIGSTART_HIT,m_nModlgrigNumber,0);
//发送消息给编码器控制窗口
pApp->pPeDialogBase->coderDlg.PostMessage(WM_MOTDLGRIGSTART_HIT,m_nModlgrigNumber,0);
}
else
MessageBox("请先进行设备自检和编码器的串口设置操作!");
}
//中止试验
void MotorDlgRigid::OnBumodlgrigStop()
{
// TODO: Add your control notification handler code here
}
//完成试验
void MotorDlgRigid::OnBumodlgrigFinish()
{
// TODO: Add your control notification handler code here
}
//加载操作
void MotorDlgRigid::OnBumodlgrigLoad()
{
// TODO: Add your control notification handler code here
//读取控制面板参数
UpdateData(TRUE);
CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();
m_dModlgrigTweight=+m_dModlgrigWeight;//当前总重量
m_dModlgrigTorque=m_dModlgrigTweight*m_dModlgrigArm;//当前转矩
m_cModlgrigLoad.EnableWindow(FALSE);//加载按钮无效
m_cModlgrigLcan.EnableWindow(TRUE);//取消加载按钮有效
pApp->pCTestFormDoc->m_dRigidDatatorque=m_dModlgrigTorque;//获得当前转矩
//发送消息给编码器控制窗口
pApp->pPeDialogBase->coderDlg.PostMessage(WM_MOTDLGRIGLOAD_HIT,0,0);
}
//卸载操作
void MotorDlgRigid::OnBumodlgrigUnload()
{
// TODO: Add your control notification handler code here
//读取控制面板参数
UpdateData(TRUE);
CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();
m_dModlgrigTweight=-m_dModlgrigWeight;//当前总重量
m_dModlgrigTorque=m_dModlgrigTweight*m_dModlgrigArm;//当前转矩
m_cModlgrigUnload.EnableWindow(FALSE);//卸载按钮无效
m_cModlgrigUlcan.EnableWindow(TRUE);//取消卸载按钮有效
pApp->pCTestFormDoc->m_dRigidDatatorque=m_dModlgrigTorque;//获得当前转矩
//发送消息给编码器控制窗口
pApp->pPeDialogBase->coderDlg.PostMessage(WM_MOTDLGRIGUNLOAD_HIT,0,0);
}
//取消加载操作
void MotorDlgRigid::OnBumodlgrigLcan()
{
// TODO: Add your control notification handler code here
//读取控制面板参数
UpdateData(TRUE);
CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();
m_dModlgrigTweight=-m_dModlgrigWeight;//当前总重量
m_dModlgrigTorque=m_dModlgrigTweight*m_dModlgrigArm;//当前转矩
m_cModlgrigLoad.EnableWindow(TRUE);//加载按钮有效
m_cModlgrigLcan.EnableWindow(FALSE);//取消加载按钮无效
pApp->pCTestFormDoc->m_dRigidDatatorque=m_dModlgrigTorque;//获得当前转矩
//发送消息给编码器控制窗口
pApp->pPeDialogBase->coderDlg.PostMessage(WM_MOTDLGRIGCLOAD_HIT,0,0);
}
//取消卸载操作
void MotorDlgRigid::OnBumodlgrigUlcan()
{
// TODO: Add your control notification handler code here
//读取控制面板参数
UpdateData(TRUE);
CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();
m_dModlgrigTweight=+m_dModlgrigWeight;//当前总重量
m_dModlgrigTorque=m_dModlgrigTweight*m_dModlgrigArm;//当前转矩
m_cModlgrigUlcan.EnableWindow(FALSE);//取消卸载按钮无效
m_cModlgrigUnload.EnableWindow(TRUE);//卸载按钮有效
pApp->pCTestFormDoc->m_dRigidDatatorque=m_dModlgrigTorque;//获得当前转矩
//发送消息给编码器控制窗口
pApp->pPeDialogBase->coderDlg.PostMessage(WM_MOTDLGRIGCUNLOAD_HIT,0,0);
}
//编码器读取数据达到设定值的消息响应函数
void MotorDlgRigid::OnCoderDaqFinish(WPARAM wParam, LPARAM lParam)
{
int ntime =(int)wParam;//发送消息的次数
switch(ntime)
{
case 0:
m_cModlgrigLoad.EnableWindow(FALSE); //加载按钮无效
m_cModlgrigLcan.EnableWindow(FALSE); //取消加载按钮无效
m_cModlgrigUlcan.EnableWindow(TRUE); //取消卸载按钮有效
m_cModlgrigUnload.EnableWindow(FALSE); //卸载按钮无效
break;
case 1:
m_cModlgrigLoad.EnableWindow(FALSE); //加载按钮无效
m_cModlgrigLcan.EnableWindow(FALSE); //取消加载按钮无效
m_cModlgrigUlcan.EnableWindow(FALSE); //取消卸载按钮无效
m_cModlgrigUnload.EnableWindow(FALSE); //卸载按钮无效
break;
default:
break;
}
}
//打开数据响应函数
void MotorDlgRigid::OnOpendata(WPARAM wParam, LPARAM lParam)
{
// TODO: Add your control notification handler code here
//MessageBox("123");
CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();
m_dModlgrigArm=pApp->pCTestFormDoc->torquearm; //加载力臂长度
m_nModlgrigNumber=pApp->pCTestFormDoc->nTotalCoderNumber;//单向加载次数
m_dModlgrigWeight=2; //加载2Kg
m_dModlgrigUnweight=pApp->pCTestFormDoc->light;//卸载1Kg
m_cModlgrigWeight.EnableWindow(TRUE); //加载编辑框有效
m_cModlgrigUnweight.EnableWindow(TRUE); //卸载编辑框有效
m_cModlgrigLoad.EnableWindow(FALSE); //加载按钮无效
m_cModlgrigLcan.EnableWindow(FALSE); //取消加载按钮无效
m_cModlgrigUlcan.EnableWindow(TRUE); //取消卸载按钮无效
m_cModlgrigUnload.EnableWindow(FALSE); //卸载按钮无效
UpdateData(FALSE); //更新主控窗口中的显示
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -