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

📄 digpidparam.cpp

📁 我自己早期编写的闭环控制小程序。一个DLL实现的PID控制器
💻 CPP
字号:
// DigPIDParam.cpp : implementation file
//

#include "stdafx.h"
#include "SimuFlat.h"
#include "DigPIDParam.h"
#include "PIDControl.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDigPIDParam dialog


CDigPIDParam::CDigPIDParam(CWnd* pParent /*=NULL*/)
	: CDialog(CDigPIDParam::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDigPIDParam)
	m_edit1 = _T("");
	m_edit2 = _T("");
	m_edit3 = _T("");
	m_edit4 = _T("");
	//}}AFX_DATA_INIT
}


void CDigPIDParam::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDigPIDParam)
	DDX_Control(pDX, IDC_EDIT4, m_edit44);
	DDX_Control(pDX, IDC_EDIT3, m_edit33);
	DDX_Control(pDX, IDC_EDIT2, m_edit22);
	DDX_Control(pDX, IDC_EDIT1, m_edit11);
	DDX_Text(pDX, IDC_EDIT1, m_edit1);
	DDX_Text(pDX, IDC_EDIT2, m_edit2);
	DDX_Text(pDX, IDC_EDIT3, m_edit3);
	DDX_Text(pDX, IDC_EDIT4, m_edit4);
	//}}AFX_DATA_MAP
	float a,b,c;
	int d;
	CString str;
	GetPIDPara(a,b,c,d);
	str.Format("%f",a);
	m_edit11.SetWindowText(str);
	str.Format("%f",b);
	m_edit22.SetWindowText(str);
	str.Format("%f",c);
	m_edit33.SetWindowText(str);
	str.Format("%d",d);
	m_edit44.SetWindowText(str);
}


BEGIN_MESSAGE_MAP(CDigPIDParam, CDialog)
	//{{AFX_MSG_MAP(CDigPIDParam)
	ON_BN_CLICKED(ID_OK, OnOk)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDigPIDParam message handlers

float strtofloat(CString str)
{
	int i,d,c,dot=-1,num=0;
	float ret;
	d=strlen(str);
	for(i=0;i<d;i++)
	{
		c=str[i];
		if(c=='.')
		{
			dot=i;
		}
		else if(c>='0'&&c<='9')
		{
			num=num*10+c-'0';
		}
		else
		{
			return 1;
		}
	}
	ret=(float)num;
	if(dot!=-1)
	{
		for(i=0;i<d-dot-1;i++)
		{
			ret=ret/10;
		}
	}
	return ret;
}

void CDigPIDParam::OnOk() 
{
	// TODO: Add your control notification handler code here

	CString a,b,c,d;
	m_edit11.GetWindowText(a);
	m_edit22.GetWindowText(b);
	m_edit33.GetWindowText(c);
	m_edit44.GetWindowText(d);
	SetPIDPara(strtofloat(a),strtofloat(b),strtofloat(c),(int)strtofloat(d));
	CDialog::OnOK();
}

⌨️ 快捷键说明

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