⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 motordlgstart.cpp

📁 一个用于无刷直流电动机的驱动与控制程序.里面所用的采集卡的型号为MC08.
💻 CPP
字号:
// MotorDlgStart.cpp : implementation file
//

#include "stdafx.h"
#include "TestForm.h"
#include "MotorDlgStart.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// MotorDlgStart dialog


MotorDlgStart::MotorDlgStart(CWnd* pParent /*=NULL*/)
	: CDialog(MotorDlgStart::IDD, pParent)
{
	//{{AFX_DATA_INIT(MotorDlgStart)
	m_dModlgstaArm = 0.0;
	m_dModlgstaWeight = 0.0;
	//}}AFX_DATA_INIT
	/*布尔变量初始化*/
	m_bModlgstaInitflag =FALSE; //未进行设置试验,设备自检
}


void MotorDlgStart::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(MotorDlgStart)
	DDX_Control(pDX, IDC_BUMODLGSTA_LOAD, m_cModlgstaLoad);
	DDX_Control(pDX, IDC_EDMODLGSTA_WEIGHT, m_cModlgstaWeight);
	DDX_Text(pDX, IDC_EDMODLGSTA_ARM, m_dModlgstaArm);
	DDX_Text(pDX, IDC_EDMODLGSTA_WEIGHT, m_dModlgstaWeight);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(MotorDlgStart, CDialog)
	//{{AFX_MSG_MAP(MotorDlgStart)
	ON_BN_CLICKED(IDC_BUMODLGSTA_INIT, OnBumodlgstaInit)
	ON_BN_CLICKED(IDC_BUMODLGSTA_START, OnBumodlgstaStart)
	ON_BN_CLICKED(IDC_BUMODLGSTA_STOP, OnBumodlgstaStop)
	ON_BN_CLICKED(IDC_BUMODLGSTA_FINISH, OnBumodlgstaFinish)
	ON_MESSAGE(WM_OPENDATA,OnOpendata)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// MotorDlgStart message handlers

BOOL MotorDlgStart::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	////----------------------------------------------////
	/*初始时单次试验操作不能进行*/
	m_cModlgstaWeight.EnableWindow(FALSE);//加载编辑框无效
	m_cModlgstaLoad.EnableWindow(FALSE);//加载按钮无效		
	////----------------------------------------------////		
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

//设备自检
void MotorDlgStart::OnBumodlgstaInit() 
{
	// TODO: Add your control notification handler code here
	m_bModlgstaInitflag =TRUE; //设置试验,设备自检完成
}

//开始试验
void MotorDlgStart::OnBumodlgstaStart() 
{
	// TODO: Add your control notification handler code here
		if (m_bModlgstaInitflag)//设备自检完成
	{
		CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();
		
		//读取控制面板参数
		UpdateData(TRUE);
		//开始试验时,加载操作有效
		m_cModlgstaWeight.EnableWindow(TRUE);//加载编辑框有效
		m_cModlgstaLoad.EnableWindow(TRUE);//加载按钮有效

		//发送消息给绘图窗口
		pApp->pCTestFormView->startDrawDlg.PostMessage(WM_MOTDLGSTARTSTART_HIT,0,0);
		//发送消息给编码器主控窗口
		pApp->pPeDialogBase->coderDlg.PostMessage(WM_MOTDLGSTARTSTART_HIT,0,0);
	}
	else
		MessageBox("请先进行设备自检和编码器的串口设置操作!");
	
}

//暂停试验
void MotorDlgStart::OnBumodlgstaStop() 
{
	// TODO: Add your control notification handler code here
	m_cModlgstaWeight.EnableWindow(FALSE);//加载编辑框无效
	m_cModlgstaLoad.EnableWindow(FALSE);//加载按钮无效
}

//完成试验
void MotorDlgStart::OnBumodlgstaFinish() 
{
	// TODO: Add your control notification handler code here
	m_cModlgstaWeight.EnableWindow(FALSE);//加载编辑框无效
	m_cModlgstaLoad.EnableWindow(FALSE);//加载按钮无效
	
}

//打开数据响应函数
void MotorDlgStart::OnOpendata(WPARAM wParam, LPARAM lParam)
{
	// TODO: Add your control notification handler code here
	//MessageBox("123");
	CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();
	m_dModlgstaArm=pApp->pCTestFormDoc->torquearm;		//获得力臂长度
	m_dModlgstaWeight=pApp->pCTestFormDoc->light;	//最后一次加载重量

	m_cModlgstaWeight.EnableWindow(TRUE);//加载编辑框有效
	m_cModlgstaLoad.EnableWindow(TRUE);//加载按钮有效	
	
	UpdateData(FALSE);		//更新主控窗口中的显示	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -