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

📄 config.cpp

📁 通过PC并口模拟I2C信号
💻 CPP
字号:
// config.cpp : 僀儞僾儕儊儞僥乕僔儑儞 僼傽僀儖
//

#include "stdafx.h"
#include "demo.h"
#include "config.h"

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

#include"MainFrm.h"

/////////////////////////////////////////////////////////////////////////////
// Cconfig 僟僀傾儘僌


Cconfig::Cconfig(CWnd* pParent /*=NULL*/)
	: CDialog(Cconfig::IDD, pParent)
{
	m_pParent=pParent;
	m_nID=Cconfig::IDD;
	//{{AFX_DATA_INIT(Cconfig)
	m_printer_port = _T("");
	m_if_freq = _T("");
	m_i2c_speed = 0;
	m_combo_i2c_speed = _T("");
	//}}AFX_DATA_INIT
}


void Cconfig::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Cconfig)
	DDX_Text(pDX, IDC_COMBO_printer_port, m_printer_port);
	DDX_Text(pDX, IDC_EDIT_if_freq, m_if_freq);
	DDX_Slider(pDX, IDC_SLIDER_i2c_speed, m_i2c_speed);
	DDX_CBString(pDX, IDC_COMBO_i2c_speed, m_combo_i2c_speed);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Cconfig, CDialog)
	//{{AFX_MSG_MAP(Cconfig)
	ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_i2c_speed, OnReleasedcaptureSLIDERi2cspeed)
	ON_CBN_KILLFOCUS(IDC_COMBO_printer_port, OnKillfocusCOMBOprinterport)
	ON_EN_KILLFOCUS(IDC_EDIT_if_freq, OnKillfocusEDITiffreq)
	ON_BN_CLICKED(IDC_BUTTON_test, OnBUTTONtest)
	ON_CBN_KILLFOCUS(IDC_COMBO_i2c_speed, OnKillfocusCOMBOi2cspeed)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Cconfig 儊僢僙乕僕 僴儞僪儔

BOOL Cconfig::Create()
{
		return CDialog::Create(m_nID,m_pParent);
}
BOOL Cconfig::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	init_dialog();
	set_dialog();
	set_combo_i2c_speed();
	return TRUE;  // 僐儞僩儘乕儖偵僼僅乕僇僗傪愝掕偟側偄偲偒丄栠傝抣偼 TRUE 偲側傝傑偡
	              // 椺奜: OCX 僾儘僷僥傿 儁乕僕偺栠傝抣偼 FALSE 偲側傝傑偡
}

void Cconfig::OnOK() 
{
	((CMainFrame*)m_pParent)->BoxDone_config();
	CDialog::OnOK();
}

void Cconfig::OnCancel() 
{
	((CMainFrame*)m_pParent)->BoxDone_config();
	CDialog::OnCancel();
}

void Cconfig::init_dialog()
{
	CSliderCtrl * pSC=(CSliderCtrl*)GetDlgItem(IDC_SLIDER_i2c_speed);
	pSC->SetRange(1,10);
//	pSC->SetTicFreq(10);

	init_combo();
	UpdateData(FALSE);
}


void Cconfig::OnReleasedcaptureSLIDERi2cspeed(NMHDR* pNMHDR, LRESULT* pResult) 
{
	get_dialog_i2c_speed();

//	CString t; t.Format("%d",((CMainFrame*)m_pParent)->d[4]); MessageBox(t);

	((CMainFrame*)m_pParent)->init_i2c();
	*pResult = 0;
}

void Cconfig::set_dialog_i2c_speed()
{
	CSliderCtrl * pSC=(CSliderCtrl*)GetDlgItem(IDC_SLIDER_i2c_speed);
	pSC->SetRange(1,10);
	//SC->SetPos(((CMainFrame*)m_pParent)->pi.I2C_SPEED);
	pSC->SetPos( int( ((CMainFrame*)m_pParent)->d[4] ) );


	//CString t; t.Format("%d",((CMainFrame*)m_pParent)->d[4]); MessageBox(t);
	//UpdateData(FALSE);
}

void Cconfig::get_dialog_i2c_speed()
{
	UpdateData(TRUE);
	((CMainFrame*)m_pParent)->d[4]=m_i2c_speed;

	//((CMainFrame*)m_pParent)->pi.I2C_SPEED=m_i2c_speed;
//	CString t; t.Format("%d",m_i2c_speed); MessageBox(t);
}

void Cconfig::set_dialog()
{
	set_dialog_i2c_speed();
	m_printer_port.Format(" %.4X",((CMainFrame*)m_pParent)->d[10]); 
//	m_printer_port.Format("%.4X",((CMainFrame*)m_pParent)->pi.PORT_ADDRESS); 
//	m_if_freq.Format("%.3lf",double(((CMainFrame*)m_pParent)->pt.if_freq)/1.e6); 
	UpdateData(FALSE);

}

void Cconfig::get_dialog()
{
	UpdateData(TRUE);
	int	data;
	double data_double;
	sscanf(m_printer_port, "%X", &data );
//	((CMainFrame*)m_pParent)->pi.PORT_ADDRESS=data;
	((CMainFrame*)m_pParent)->d[10]=data;
	((CMainFrame*)m_pParent)->init_i2c();

	sscanf(m_if_freq, "%lf", &data_double );
	((CMainFrame*)m_pParent)->pt.if_freq=long(data_double*1.e6);
}

void Cconfig::OnKillfocusCOMBOprinterport() 
{
	get_dialog();
	set_dialog();
}

void Cconfig::OnKillfocusEDITiffreq() 
{
	get_dialog();
	set_dialog();
}

void Cconfig::init_combo()
{
	CString t;
	//V0.01[050802]
	long port_address[10]={0x3BC,0x378,0x278};
	CComboBox* pCB=(CComboBox*)GetDlgItem(IDC_COMBO_printer_port);
	int i=0;
	for(i=0;i<3;i++)
	{
		t.Format("%.4X",port_address[i]); 
		pCB->AddString(t);
	}

	//i2c_speed
	CComboBox* pCB_i2c_speed=(CComboBox*)GetDlgItem(IDC_COMBO_i2c_speed);
	for(i=0;i<=10;i++)
	{
		t.Format("%d",i); 
		pCB_i2c_speed->AddString(t);
	}





}



void Cconfig::OnBUTTONtest() 
{
	set_dialog_i2c_speed();
	UpdateData(FALSE);
	
}

void Cconfig::set_combo_i2c_speed()
{
	m_combo_i2c_speed.Format(" %d",((CMainFrame*)m_pParent)->d[4]); 
	UpdateData(FALSE);
}

void Cconfig::get_combo_i2c_speed()
{
	UpdateData(TRUE);
	int	data;
	sscanf(m_combo_i2c_speed, "%d", &data );
	((CMainFrame*)m_pParent)->d[4]=data;
}

void Cconfig::OnKillfocusCOMBOi2cspeed() 
{
	get_combo_i2c_speed();
	set_combo_i2c_speed();
}

⌨️ 快捷键说明

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