📄 motordlgprv.cpp
字号:
// MotorDlgPrv.cpp : implementation file
//
#include "stdafx.h"
#include "TestForm.h"
#include "MotorDlgPrv.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// MotorDlgPrv dialog
MotorDlgPrv::MotorDlgPrv(CWnd* pParent /*=NULL*/)
: CDialog(MotorDlgPrv::IDD, pParent)
{
//{{AFX_DATA_INIT(MotorDlgPrv)
m_dModlgprvSpeed = 100.0;
m_nModlgprvPoint = 60;
//}}AFX_DATA_INIT
m_bSelfchekflag =FALSE;//设备自检未完成
}
void MotorDlgPrv::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(MotorDlgPrv)
DDX_Control(pDX, IDC_COMODLGPRV_DIRECT, m_cModlgprvDirect);
DDX_Text(pDX, IDC_EDMODLGPRV_SPEED, m_dModlgprvSpeed);
DDX_Text(pDX, IDC_EDMODLGPRV_POINT, m_nModlgprvPoint);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(MotorDlgPrv, CDialog)
//{{AFX_MSG_MAP(MotorDlgPrv)
ON_BN_CLICKED(IDC_BUMODLGPRV_INIT, OnBumodlgprvInit)
ON_BN_CLICKED(IDC_BUMODLGPRV_START, OnBumodlgprvStart)
ON_BN_CLICKED(IDC_BUMODLGPRV_STOP, OnBumodlgprvStop)
ON_BN_CLICKED(IDC_BUMODLGPRV_FINISH, OnBumodlgprvFinish)
//手动添加,编码器完成一次数据读取的消息响应函数
ON_MESSAGE(WM_CODERDAQ_ONE,OnCoderDaqOne)
ON_MESSAGE(WM_OPENDATA,OnOpendata)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// MotorDlgPrv message handlers
//////////////////////////////////////////////
BOOL MotorDlgPrv::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_cModlgprvDirect.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//设备自检
void MotorDlgPrv::OnBumodlgprvInit()
{
// TODO: Add your control notification handler code here
motorprvDlg.initBoard();
m_bSelfchekflag =TRUE;//设备自检完成
}
//开始试验
void MotorDlgPrv::OnBumodlgprvStart()
{
// TODO: Add your control notification handler code here
//读取控制面板参数
UpdateData(TRUE);
if (m_bSelfchekflag)
{
CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();
motorprvDlg.m_bMotorVmove = FALSE;//电机运动类型为点位运动
motorprvDlg.m_dMotorSpeed = m_dModlgprvSpeed;//电机运动速度
motorprvDlg.m_dMotorTangle = 360/m_nModlgprvPoint;//电机每次运动的角度
motorprvDlg.m_nMotorDirectTem=m_cModlgprvDirect.GetCurSel();//电机运动方向
//motorprvDlg.MotorRun();
//发送消息给画图窗口
pApp->pCTestFormView->prvDrawDlg.PostMessage(WM_MOTDLGPRVSTART_HIT,m_nModlgprvPoint,1);
//发送消息给编码器控制窗口
pApp->pPeDialogBase->coderDlg.PostMessage(WM_MOTDLGPRVSTART_HIT,m_nModlgprvPoint,1);
//MessageBox("3");
}
else
MessageBox("请先进行设备自检和编码器的串口设置操作!");
}
//停止试验
void MotorDlgPrv::OnBumodlgprvStop()
{
// TODO: Add your control notification handler code here
motorprvDlg.MotorStop();
}
//完成试验
void MotorDlgPrv::OnBumodlgprvFinish()
{
// TODO: Add your control notification handler code here
motorprvDlg.MotorStop();
}
//编码器完成一次采集
void MotorDlgPrv::OnCoderDaqOne(WPARAM wParam, LPARAM lParam)
{
motorprvDlg.m_bMotorVmove = FALSE;//电机运动类型为点位运动
motorprvDlg.m_dMotorSpeed = m_dModlgprvSpeed;//电机运动速度
motorprvDlg.m_dMotorTangle = 360/m_nModlgprvPoint;//电机每次运动的角度
motorprvDlg.m_nMotorDirectTem=m_cModlgprvDirect.GetCurSel();//电机运动方向
motorprvDlg.MotorRun();
}
//打开数据响应函数
void MotorDlgPrv::OnOpendata(WPARAM wParam, LPARAM lParam)
{
// TODO: Add your control notification handler code here
//MessageBox("123");
CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();
m_dModlgprvSpeed=pApp->pCTestFormDoc->motorRate; //获得转速
int direct=pApp->pCTestFormDoc->motorDirect; //获得转向
if(direct==-1)
m_cModlgprvDirect.SetCurSel(1); //初始化为反转
else
m_cModlgprvDirect.SetCurSel(0); //初始化为正转
m_nModlgprvPoint=(int)(pApp->pCTestFormDoc->nTotalCoderNumber);//测试点数
UpdateData(FALSE); //更新主控窗口中的显示
//OnBumodlgpowInit();
//OnBumodlgpowStart();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -