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

📄 dlgparaupdownload.cpp

📁 串口收发工具
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// DlgParaUpdownLoad.cpp : implementation file
//

#include "stdafx.h"
#include "maintain.h"
#include "DlgParaUpdownLoad.h"
#include "mainfrm.h"
#include "maintainview.h"

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

char* msu_name[]=
{"1-均充电压",
"2-浮充电压",
"3-限流均充电流",
"4-均充电流下限",
"5-转均充电压",
"6-恒压均充时间(分)",
"7-转均充放电时间(分)",
"8-电池均充周期(天)",
"9-分流器1额定电流",
"10-分流器2额定电流",
"11-整流模块额定电流",
"12-模块类型",
"13-DCP控制分流器选择位(0:FLQ1,1:FLQ2)",
"14-温度补偿中心温度(℃)",
"15-温度补偿范围(℃)",
"16-温度补偿系数(mV/℃)",
"17-电池容量(AH)",
"18-电池切断电压(V)",
"19-负载切断电压(V)",
"20-电池恢复电压(V)",
"21-负载恢复电压(V)",
"22-YX1取反系数",
"23-YX2取反系数",
"24-模块数量",
"25-模块总有效电流(A)",
"26-单模块有效电流(A)"
};


char* dcu_name[]=
{"1-交流电压告警上限",
"2-交流电压告警下限",
"3-直流电压告警上限1",
"4-直流电压告警上限2",
"5-直流电压告警上限3",
"6-直流电压告警下限1",
"7-直流电压告警下限2",
"8-直流电压告警下限3",
"9-交流电流告警上限",
"10-交流电流互感器额定输入",
"11-YX1取反系数",
"12-YX2取反系数"
};

char* acu_name[]=
{"1-交流电压告警上限1",
"2-交流电压告警上限2",
"3-交流电压告警下限1",
"4-交流电压告警下限2",
"5-交流电流告警上限1",
"6-交流电流告警上限2",
"7-交流电流互感器额定输入1",
"8-交流电流互感器额定输入2",
"9-YX1取反系数",
"10-YX2取反系数"
};
/////////////////////////////////////////////////////////////////////////////
// CDlgParaUpdownLoad dialog


CDlgParaUpdownLoad::CDlgParaUpdownLoad(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgParaUpdownLoad::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgParaUpdownLoad)
	m_1 = 0;
	m_2 = 0;
	m_3 = 0;
	m_4 = 0;
	m_5 = 0;
	m_6 = 0;
	m_7 = 0;
	m_8 = 0;
	m_9 = 0;
	m_10 = 0;
	m_11 = 0;
	m_12 = 0;
	m_13 = 0;
	m_14 = 0;
	m_15 = 0;
	m_16 = 0;
	m_17 = 0;
	m_18 = 0;
	m_19 = 0;
	m_20 = 0;
	m_21 = 0;
	m_22 = 0;
	m_23 = 0;
	m_24 = 0;
	m_25 = 0;
	m_26 = 0;
	m_27 = 0;
	m_28 = 0;
	m_29 = 0;
	m_30 = 0;
	m_31 = 0;
	m_32 = 0;
	m_33 = 0;
	m_34 = 0;
	//}}AFX_DATA_INIT
	pWnd = pParent;
	bExpand = true;
}


void CDlgParaUpdownLoad::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgParaUpdownLoad)
	DDX_Control(pDX, IDC_COMBO1, m_Type);
	DDX_Control(pDX, IDC_COMBO3, m_No);
	DDX_Control(pDX, IDC_RESULT, m_Result);
	DDX_Text(pDX, 101, m_1);
	DDX_Text(pDX, 102, m_2);
	DDX_Text(pDX, 103, m_3);
	DDX_Text(pDX, 104, m_4);
	DDX_Text(pDX, 105, m_5);
	DDX_Text(pDX, 106, m_6);
	DDX_Text(pDX, 107, m_7);
	DDX_Text(pDX, 108, m_8);
	DDX_Text(pDX, 109, m_9);
	DDX_Text(pDX, 110, m_10);
	DDX_Text(pDX, 111, m_11);
	DDX_Text(pDX, 112, m_12);
	DDX_Text(pDX, 113, m_13);
	DDX_Text(pDX, 114, m_14);
	DDX_Text(pDX, 115, m_15);
	DDX_Text(pDX, 116, m_16);
	DDX_Text(pDX, 117, m_17);
	DDX_Text(pDX, 118, m_18);
	DDX_Text(pDX, 119, m_19);
	DDX_Text(pDX, 120, m_20);
	DDX_Text(pDX, 121, m_21);
	DDX_Text(pDX, 122, m_22);
	DDX_Text(pDX, 123, m_23);
	DDX_Text(pDX, 124, m_24);
	DDX_Text(pDX, 125, m_25);
	DDX_Text(pDX, 126, m_26);
	DDX_Text(pDX, 127, m_27);
	DDX_Text(pDX, 128, m_28);
	DDX_Text(pDX, 129, m_29);
	DDX_Text(pDX, 130, m_30);
	DDX_Text(pDX, 131, m_31);
	DDX_Text(pDX, 132, m_32);
	DDX_Text(pDX, 133, m_33);
	DDX_Text(pDX, 134, m_34);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgParaUpdownLoad, CDialog)
	//{{AFX_MSG_MAP(CDlgParaUpdownLoad)
	ON_CBN_SELENDOK(IDC_COMBO1, OnSelendokCombo1)
	ON_BN_CLICKED(IDC_UPLOAD, OnUpload)
	ON_BN_CLICKED(IDC_ZERO, OnZero)
	ON_BN_CLICKED(IDC_DOWNLOAD, OnDownload)
	ON_MESSAGE(MSG_DOWNLOADRETURN, OnControlResult)
	ON_BN_CLICKED(IDC_OPEN_PARA, OnOpenPara)
	ON_BN_CLICKED(IDC_SAVE_PARA, OnSavePara)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgParaUpdownLoad message handlers

void CDlgParaUpdownLoad::OnSelendokCombo1() 
{
	// TODO: Add your control notification handler code here
	int i;
	CRect rcEdit,rc;
	GetWindowRect(rc);

	int nCurSel = m_Type.GetCurSel();
	if(nCurSel!=CB_ERR)
	{
		for(i=0;i<PARA_COUNT;i++)
		{
			((CStatic*)GetDlgItem(i+1))->ShowWindow(SW_HIDE);
			((CEdit*)GetDlgItem(101+i))->ShowWindow(SW_HIDE);
		}
		
		switch(nCurSel) {
		case 1://MSU
			
			for(i=0;i<PARA_COUNT_MSU;i++)
			{
				((CStatic*)GetDlgItem(i+1))->ShowWindow(SW_SHOW);
				((CStatic*)GetDlgItem(i+1))->SetWindowText(msu_name[i]);
				((CEdit*)GetDlgItem(101+i))->ShowWindow(SW_SHOW);
			}
			((CEdit*)GetDlgItem(100+PARA_COUNT_MSU))->GetWindowRect(rcEdit);
			rc.bottom = rcEdit.bottom + 5;
			MoveWindow(rc);
			break;
		case 2://DCU
			for(i=0;i<PARA_COUNT_DCU;i++)
			{
				((CStatic*)GetDlgItem(i+1))->ShowWindow(SW_SHOW);
				((CStatic*)GetDlgItem(i+1))->SetWindowText(dcu_name[i]);
				((CEdit*)GetDlgItem(101+i))->ShowWindow(SW_SHOW);
			}
			((CEdit*)GetDlgItem(100+PARA_COUNT_DCU))->GetWindowRect(rcEdit);
			rc.bottom = rcEdit.bottom + 5;
			MoveWindow(rc);
			break;
		case 3://ACU
			for(i=0;i<PARA_COUNT_ACU;i++)
			{
				((CStatic*)GetDlgItem(i+1))->ShowWindow(SW_SHOW);
				((CStatic*)GetDlgItem(i+1))->SetWindowText(acu_name[i]);
				((CEdit*)GetDlgItem(101+i))->ShowWindow(SW_SHOW);
			}
			((CEdit*)GetDlgItem(100+PARA_COUNT_ACU))->GetWindowRect(rcEdit);
			rc.bottom = rcEdit.bottom + 5;
			MoveWindow(rc);
			break;
		default:
			for(i=0;i<PARA_COUNT_MSU;i++)
			{
				((CStatic*)GetDlgItem(i+1))->ShowWindow(SW_SHOW);
				((CStatic*)GetDlgItem(i+1))->SetWindowText(msu_name[i]);
				((CEdit*)GetDlgItem(101+i))->ShowWindow(SW_SHOW);
			}
			((CEdit*)GetDlgItem(100+PARA_COUNT_MSU))->GetWindowRect(rcEdit);
			rc.bottom = rcEdit.bottom + 5;
			MoveWindow(rc);
			break;
		}
	OnZero();			
	}
}

BOOL CDlgParaUpdownLoad::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	int nGroup = ((CMainFrame*)AfxGetMainWnd())->GetGroupNo();
	int nAddr = ((CMainFrame*)AfxGetMainWnd())->GetAddrNo();
	if ((nGroup>16)||(nAddr>16))
	{
		nGroup = 0;
		nAddr = 0;
	}	
	m_Type.SetCurSel(nGroup);
	m_No.SetCurSel(nAddr);
	ClearZero();
	UpdateData(false);
	OnSelendokCombo1();
	m_Result.SetWindowText("");
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgParaUpdownLoad::OnUpload() 
{
	// TODO: Add your control notification handler code here
	m_Result.SetWindowText("");
	ClearZero();
	UpdateData(true);

	int nCurSel1 = m_Type.GetCurSel();
	int nCurSel2 = m_No.GetCurSel();
	if ((nCurSel1<0)||(nCurSel2<0)) 
	{
		MessageBox(_T("请选择模块类型和序号!"),"提示",MB_OK|MB_ICONSTOP);
		return;
	}
	((CMainFrame*)AfxGetMainWnd())->SetGroupAddress(nCurSel1,nCurSel2);
	
	
	int nCurSel = m_Type.GetCurSel();
	if(nCurSel!=CB_ERR)
		((CMaintainView*)pWnd)->UploadPara(nCurSel);
}


void CDlgParaUpdownLoad::ClearZero()
{
	m_Result.SetWindowText("");
	for(int i=0;i <PARA_COUNT; i++)
		((CEdit*)GetDlgItem(101+i))->SetWindowText("0");
}

void CDlgParaUpdownLoad::OnZero() 
{
	// TODO: Add your control notification handler code here
	ClearZero();
}

void CDlgParaUpdownLoad::OnDownload() 
{
	// TODO: Add your control notification handler code here
	m_Result.SetWindowText("");
	UpdateData(true);
	
	int nCurSel1 = m_Type.GetCurSel();
	int nCurSel2 = m_No.GetCurSel();
	if ((nCurSel1<0)||(nCurSel2<0)) 
	{

⌨️ 快捷键说明

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