📄 dlgparaupdownload.cpp
字号:
// 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 + -