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

📄 dcodedlg.cpp

📁 串行通讯程序,为电池分析仪与电脑通讯软件,效果不错.
💻 CPP
字号:
// DCodeDlg.cpp : implementation file
//

#include "stdafx.h"
#include "DigitalPowerAnalyst.h"
#include "DCodeDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDCodeDlg dialog


CDCodeDlg::CDCodeDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDCodeDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDCodeDlg)
Inint();
			m_DCodetemp2=0;
			IsDlgShow=FALSE;
     m_nStation=1;
     m_nCycle=10 ;
	//}}AFX_DATA_INIT
}


void CDCodeDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDCodeDlg)
    DDX_Control(pDX,IDC_BatteryDCODE001, m_cCodetype);
  	DDX_CBString(pDX, IDC_BatteryDCODE001, m_DCodetype);
	DDX_Text(pDX, IDC_BatteryDCODE002, m_DCodecells);
	DDX_Text(pDX, IDC_BatteryDCODE003, m_DCoderating);
	DDX_Text(pDX, IDC_BatteryDCODE004, m_DCodecr);
	DDX_Text(pDX, IDC_BatteryDCODE005, m_DCodedr);
	DDX_Text(pDX, IDC_BatteryDCODE006, m_DCodetcr);
	DDX_Text(pDX, IDC_BatteryDCODE007, m_DCodetdr);
	DDX_Text(pDX, IDC_BatteryDCODE104, m_DCodecrDa);
	DDX_Text(pDX, IDC_BatteryDCODE105, m_DCodedrDa);
	DDX_Text(pDX, IDC_BatteryDCODE106, m_DCodetcrDa);
	DDX_Text(pDX, IDC_BatteryDCODE107, m_DCodetdrDa);
	DDX_Text(pDX, IDC_BatteryDCODE008, m_DCodeRoffset);
	DDX_Text(pDX, IDC_BatteryDCODE009, m_DCodetemp1);
	DDX_Text(pDX, IDC_BatteryDCODE010, m_DCodens);
	DDX_Text(pDX, IDC_BatteryDCODE011, m_DCodeed);
	DDX_Text(pDX, IDC_BatteryDCODE012, m_DCodeer);
    DDX_Control(pDX,IDC_BatteryDCODE013, m_cCodemethod);
	DDX_CBString(pDX, IDC_BatteryDCODE013, m_DCodemethod);
	DDX_Text(pDX, IDC_BatteryDCODE014, m_DCodesv);
	DDX_Text(pDX, IDC_BatteryDCODE015, m_DCodemv);
	DDX_Text(pDX, IDC_BatteryDCODE016, m_DCodectp);
	DDX_Text(pDX, IDC_BatteryDCODE116, m_DCodectpDa);
    DDX_Control(pDX,IDC_BatteryDCODE017, m_cCodeprogram);
	DDX_CBString(pDX, IDC_BatteryDCODE017, m_DCodeprogram);
	DDX_Text(pDX, IDC_BatteryDCODE018, m_DCodetarget);
 	DDX_Text(pDX, IDC_BatteryDCODE019, m_DCodetemp2);
    DDX_Control(pDX,IDC_COMBOSetup,m_Setup);
    DDX_Control(pDX,IDC_COMBOStation,m_Station);

	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDCodeDlg, CDialog)
	//{{AFX_MSG_MAP(CDCodeDlg)
	ON_BN_CLICKED(ID_ReadAnalysis, OnReadAnalysis)
	ON_BN_CLICKED(ID_WriteAnalysis, OnWriteAnalysis)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDCodeDlg message handlers

void CDCodeDlg::OnReadAnalysis() 
{  unsigned int nStationCmd;
	// TODO: Add your control notification handler code here
	//	m_ComPort.WriteToDevice((char ) 0x83,01,0,"",0);
  //  UpdateData( TRUE);
     Inint();
	UpdateData( FALSE);
	m_nStation=m_Station.GetCurSel()+1;
	m_nCycle=m_Setup.GetCurSel()+1;
	nStationCmd=m_nStation *256+0x83;
	UpdateData( FALSE);
	::SendMessage(m_pOwner->m_hWnd, WM_COMM_READAnaly , (WPARAM) nStationCmd, (LPARAM) m_nCycle);
}

void CDCodeDlg::SetOwner(CView *m_pOwnerActul)
{
m_pOwner=m_pOwnerActul;
}
void CDCodeDlg::OnWriteAnalysis() 
{unsigned int nStationCmd;
	// TODO: Add your control notification handler code here
  
   UpdateData( TRUE);
  
	m_nStation=m_Station.GetCurSel()+1;
	m_nCycle=m_Setup.GetCurSel()+1;
	nStationCmd=m_nStation *256+0x84;
//	UpdateData( FALSE);
	::SendMessage(m_pOwner->m_hWnd, WM_COMM_READAnaly , (WPARAM) nStationCmd, (LPARAM) m_nCycle);	
}

void CDCodeDlg::UpdateD(BOOL B )
{     if(B==FALSE)
{
		m_DCodetype = TypeStr1[m_DCodeccode.type/10-1];
    	m_DCodecells=(float)(m_DCodeccode.cells*StandVol[m_DCodeccode.type/10-1]);			/* # of cells						*/
		m_DCoderating=m_DCodeccode.rating;			/* battery rating		- mAh			*/
		m_DCodecr=(float)(m_DCodeccode.cr/100.0);			/* charge rate        		- C			*/
		m_DCodedr=(float)(m_DCodeccode.dr/100.);			/* discharge rate     		- C			*/
		m_DCodetcr=m_DCodeccode.tcr ;			/* trickle charge rate		- C			*/
		m_DCodetdr=m_DCodeccode.tdr ;			/* recon discharge rate		- C			*/
		m_DCodetemp1=m_DCodeccode.temp1;			/* low temp cutoff		- 鳦			*/
		m_DCodeRoffset=m_DCodeccode.Roffset;		/* capacity offset		- %			*/
			m_DCodens=m_DCodeccode.ns;			/* negative slope		- mV/Cell		*/
			m_DCodeed=m_DCodeccode.ed ;			/* end discharge threshold	- mV/Cell		*/
			m_DCodeer=m_DCodeccode.er;			/* end recondition threshold	- mV/Cell		*/
			m_DCodemethod=MethodStr[m_DCodeccode.method? m_DCodeccode.method-1:m_DCodeccode.method];			/* charge method					*/
			m_DCodesv=m_DCodeccode.sv;			/* maximum standby voltage	- mV/Cell	 	*/
			m_DCodemv=m_DCodeccode.mv ;			/* maximum voltage		- mV/Cell		*/
			m_DCodeprogram=ProgramStr[m_DCodeccode.program];		/* charge program					*/
			m_DCodectp=(float)m_DCodeccode.ctp/10;			/* charge termination point	- C			*/
			m_DCodetarget=m_DCodeccode.target ;			/* target capacity		- 50 - 150%		*/
			m_DCodetemp2=m_DCodeccode.temp2;
 	m_DCodecrDa=m_DCodecr *m_DCodeccode.rating;			/* charge rate        		- C			*/
 	m_DCodedrDa=m_DCodedr*m_DCodeccode.rating;			/* discharge rate     		- C			*/
 	m_DCodetcrDa=m_DCodeccode.tcr*m_DCodeccode.rating/100;			/* trickle charge rate		- C			*/
 	m_DCodetdrDa=m_DCodeccode.tdr*m_DCodeccode.rating/100;			/* recon discharge rate		- C			*/
 	m_DCodectpDa=m_DCodeccode.ctp*m_DCodeccode.rating/100;
	m_Station.SetCurSel(m_nStation-1); 
	m_Setup.SetCurSel(m_nCycle-1); 
			UpdateData(FALSE);
}
else
{
		m_DCodeccode.type= (m_cCodetype.GetCurSel()+1)*10 +INT_TYPE ;
    	m_DCodeccode.cells=(int)(m_DCodecells/StandVol[m_DCodeccode.type/10-1]+0.1);			/* # of cells						*/
		m_DCodeccode.rating=m_DCoderating;			/* battery rating		- mAh			*/
		m_DCodeccode.cr=(int)(m_DCodecr*10+0.1);			/* charge rate        		- C			*/
		m_DCodeccode.dr=(int)(m_DCodedr*10+0.1);			/* discharge rate     		- C			*/
		m_DCodeccode.tcr=(m_DCodetcr) ;			/* trickle charge rate		- C			*/
		m_DCodeccode.tdr=(m_DCodetdr) ;			/* recon discharge rate		- C			*/
		m_DCodeccode.temp1=m_DCodetemp1;			/* low temp cutoff		- 鳦			*/
		m_DCodeccode.Roffset=m_DCodeRoffset;		/* capacity offset		- %			*/
		m_DCodeccode.ns	=m_DCodens;			/* negative slope		- mV/Cell		*/
		m_DCodeccode.ed=m_DCodeed ;			/* end discharge threshold	- mV/Cell		*/
		m_DCodeccode.er	=m_DCodeer;			/* end recondition threshold	- mV/Cell		*/
		m_DCodeccode.method=	m_cCodemethod.GetCurSel()+1;			/* charge method					*/
		m_DCodeccode.sv=	m_DCodesv;			/* maximum standby voltage	- mV/Cell	 	*/
		m_DCodeccode.mv	=m_DCodemv ;			/* maximum voltage		- mV/Cell		*/
		m_DCodeccode.program=	m_cCodeprogram.GetCurSel();		/* charge program					*/
		m_DCodeccode.ctp=(int)(m_DCodectp*10+0.1);			/* charge termination point	- C			*/
		m_DCodeccode.target= 	m_DCodetarget;			/* target capacity		- 50 - 150%		*/
		m_DCodeccode.temp2=	m_DCodetemp2;
	m_nStation=m_Station.GetCurSel()+1; 
	m_nCycle=m_Setup.GetCurSel()+1; 

			UpdateData(TRUE);
}
}
BOOL  CDCodeDlg::OnInitDialog()
{char tmp[3];
	CDialog::OnInitDialog();
for(int i=0;i<4;i++)
	m_cCodetype.AddString(TypeStr1[i]);
for(i=0;i<8;i++)
	m_cCodemethod.AddString(MethodStr[i]);
for(i=0;i<16;i++)
	m_cCodeprogram.AddString(ProgramStr[i]);
for(i=1;i<11;i++)
   m_Setup.AddString(itoa(i,tmp,10));;

for(i=1;i<5;i++)
  m_Station.AddString(itoa(i,tmp,10));
 	SetWindowText(m_sCaptionTiltle); 
 m_Station.SetCurSel(m_nStation-1); 
 m_Setup.SetCurSel(m_nCycle-1); 
	return TRUE;

}
void  CDCodeDlg::OnOK() 
{
	// TODO: Add extra validation here
 	IsDlgShow=FALSE;
	CDialog::OnOK();
}



void CDCodeDlg::Inint()
{
		m_DCodetype = _T("");
    	m_DCodecells=0;			/* # of cells						*/
		m_DCoderating=0;			/* battery rating		- mAh			*/
		m_DCodecr=0;			/* charge rate        		- C			*/
		m_DCodedr=0;			/* discharge rate     		- C			*/
		m_DCodetcr=0;			/* trickle charge rate		- C			*/
		m_DCodetdr=0;			/* recon discharge rate		- C			*/
		m_DCodetemp1=0;			/* low temp cutoff		- 鳦			*/
		m_DCodeRoffset=0;		/* capacity offset		- %			*/
			m_DCodens=0;			/* negative slope		- mV/Cell		*/
			m_DCodeed=0;			/* end discharge threshold	- mV/Cell		*/
			m_DCodeer=0;			/* end recondition threshold	- mV/Cell		*/
			m_DCodemethod= _T("");			/* charge method					*/
			m_DCodesv=0;			/* maximum standby voltage	- mV/Cell	 	*/
			m_DCodemv=0;			/* maximum voltage		- mV/Cell		*/
			m_DCodeprogram= _T("");		/* charge program					*/
			m_DCodectp=0;			/* charge termination point	- C			*/
			m_DCodetarget=0;			/* target capacity		- 50 - 150%		*/
 	m_DCodecrDa=0;			/* charge rate        		- C			*/
 	m_DCodedrDa=0;			/* discharge rate     		- C			*/
 	m_DCodetcrDa=0;			/* trickle charge rate		- C			*/
 	m_DCodetdrDa=0;			/* recon discharge rate		- C			*/
 	m_DCodectpDa=0;
}

⌨️ 快捷键说明

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