361 lines
10 KiB
C++
361 lines
10 KiB
C++
// WaterTankCalcDlg.cpp : implementation file
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "WaterTankCalcDlg.h"
|
||
#include "SelWaterTankDlg.h"
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#undef THIS_FILE
|
||
static char THIS_FILE[] = __FILE__;
|
||
#endif
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CWaterTankCalcDlg dialog
|
||
|
||
void WaterTankCalc()
|
||
{
|
||
CTemporaryResourceOverride vTemp;
|
||
CWaterTankCalcDlg dlg;
|
||
dlg.DoModal();
|
||
}
|
||
|
||
CWaterTankCalcDlg::CWaterTankCalcDlg(CWnd* pParent /*=NULL*/)
|
||
: CDialog(CWaterTankCalcDlg::IDD, pParent)
|
||
{
|
||
//{{AFX_DATA_INIT(CWaterTankCalcDlg)
|
||
m_iCalcMode = 0;
|
||
m_iPurpose = 0;
|
||
m_iRunMode = 0;
|
||
m_csLive1 = _T("");
|
||
m_csLive2 = _T("");
|
||
m_csLive3 = _T("");
|
||
m_csLive4 = _T("");
|
||
m_csLiveVolume = _T("");
|
||
m_csFireQ = _T("");
|
||
m_csFireTime = _T("");
|
||
m_csLevel = _T("18");
|
||
m_csAllVolume = _T("");
|
||
m_csFireVolume = _T("");
|
||
//}}AFX_DATA_INIT
|
||
}
|
||
|
||
|
||
void CWaterTankCalcDlg::DoDataExchange(CDataExchange* pDX)
|
||
{
|
||
CDialog::DoDataExchange(pDX);
|
||
//{{AFX_DATA_MAP(CWaterTankCalcDlg)
|
||
DDX_Radio(pDX, IDC_RADIO_CALCMODE1, m_iCalcMode);
|
||
DDX_Radio(pDX, IDC_RADIO_PURPOSE1, m_iPurpose);
|
||
DDX_Radio(pDX, IDC_RADIO_RUNMODE1, m_iRunMode);
|
||
DDX_Text(pDX, IDC_EDIT_LIVE_1, m_csLive1);
|
||
DDX_Text(pDX, IDC_EDIT_LIVE_2, m_csLive2);
|
||
DDX_Text(pDX, IDC_EDIT_LIVE_3, m_csLive3);
|
||
DDX_Text(pDX, IDC_EDIT_LIVE_4, m_csLive4);
|
||
DDX_Text(pDX, IDC_EDIT_LIVE_VOLUME, m_csLiveVolume);
|
||
DDX_Text(pDX, IDC_EDIT_FIRE_Q, m_csFireQ);
|
||
DDX_Text(pDX, IDC_EDIT_FIRE_TIME, m_csFireTime);
|
||
DDX_CBString(pDX, IDC_COMBO_ARCH_LEVEL, m_csLevel);
|
||
DDX_Text(pDX, IDC_EDIT_ALL_VOLUME, m_csAllVolume);
|
||
DDX_Text(pDX, IDC_EDIT_FIRE_VOLUME, m_csFireVolume);
|
||
//}}AFX_DATA_MAP
|
||
}
|
||
|
||
|
||
BEGIN_MESSAGE_MAP(CWaterTankCalcDlg, CDialog)
|
||
//{{AFX_MSG_MAP(CWaterTankCalcDlg)
|
||
ON_BN_CLICKED(IDC_BUTTON_LEVEL, OnButtonLevel)
|
||
ON_BN_CLICKED(IDC_RADIO_PURPOSE1, OnRadioPurpose1)
|
||
ON_BN_CLICKED(IDC_RADIO_PURPOSE2, OnRadioPurpose2)
|
||
ON_BN_CLICKED(IDC_RADIO_PURPOSE3, OnRadioPurpose3)
|
||
ON_BN_CLICKED(IDC_RADIO_RUNMODE1, OnRadioRunmode1)
|
||
ON_BN_CLICKED(IDC_RADIO_RUNMODE2, OnRadioRunmode2)
|
||
ON_BN_CLICKED(IDC_RADIO_RUNMODE3, OnRadioRunmode3)
|
||
ON_BN_CLICKED(IDC_RADIO_CALCMODE1, OnRadioCalcmode1)
|
||
ON_BN_CLICKED(IDC_RADIO_CALCMODE2, OnRadioCalcmode2)
|
||
ON_BN_CLICKED(IDC_BUTTON_CALC, OnButtonCalc)
|
||
ON_BN_CLICKED(IDC_BUTTON_DWG_SERIES, OnButtonDwgSeries)
|
||
//}}AFX_MSG_MAP
|
||
END_MESSAGE_MAP()
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CWaterTankCalcDlg message handlers
|
||
void CWaterTankCalcDlg::OnButtonLevel()
|
||
{
|
||
AfxMessageBox(_T("各类建筑屋顶消防水箱最小容积(立方米)!\n\n一类公共建筑最小18\n二类公共建筑和一类住宅建筑最小12\n二类住宅建筑最小6\n\n"));
|
||
}
|
||
|
||
BOOL CWaterTankCalcDlg::OnInitDialog()
|
||
{
|
||
CDialog::OnInitDialog();
|
||
|
||
Reset();
|
||
return TRUE; // return TRUE unless you set the focus to a control
|
||
// EXCEPTION: OCX Property Pages should return FALSE
|
||
}
|
||
|
||
void CWaterTankCalcDlg::OnButtonCalc()
|
||
{
|
||
UpdateData();
|
||
double nRet(0), nAllRet(0);
|
||
if(m_iPurpose != 1){
|
||
if(m_iRunMode == 0){ //水泵自动
|
||
if(m_iCalcMode == 0){ //计算Vt=1.25Qb/4Nmax
|
||
double nQb = _tstof(m_csLive2);
|
||
double nNmax = _tstof(m_csLive1);
|
||
if(nNmax <= 0)
|
||
return;
|
||
nRet = 1.25*nQb/(4*nNmax);
|
||
m_csLiveVolume.Format(_T("%.2f"), nRet);
|
||
}
|
||
else if(m_iCalcMode == 1){ //估算Vt=(Q-Qb)T+QbTb
|
||
double nQ = _tstof(m_csLive1);
|
||
double nQb = _tstof(m_csLive2);
|
||
double nT = _tstof(m_csLive3);
|
||
double nTb = _tstof(m_csLive4);
|
||
nRet = (nQ - nQb)*nT + nQb*nTb;
|
||
m_csLiveVolume.Format(_T("%.2f"), nRet);
|
||
}
|
||
}
|
||
else if(m_iRunMode == 1){ //水泵人工 公式:Qd/n-Tb×Qm
|
||
double nQd = _tstof(m_csLive1);
|
||
double nQm = _tstof(m_csLive2);
|
||
double nTb = _tstof(m_csLive3);
|
||
double nN = _tstof(m_csLive4);
|
||
nRet = nQd/nN - nTb*nQm;
|
||
m_csLiveVolume.Format(_T("%.2f"), nRet);
|
||
}
|
||
else if(m_iRunMode == 2){ //单设水箱 公式:Qm×T
|
||
double nQm = _tstof(m_csLive1);
|
||
double nT = _tstof(m_csLive2);
|
||
nRet = nQm * nT;
|
||
m_csLiveVolume.Format(_T("%.2f"), nRet);
|
||
}
|
||
}
|
||
nAllRet = nRet;
|
||
if(m_iPurpose != 0){ //公式:Vf=Qx×Tx×60/1000
|
||
double nQx = _tstof(m_csFireQ);
|
||
double nTx = _tstof(m_csFireTime);
|
||
nRet = nQx * nTx * 60 / 1000;
|
||
double nLevel = _tstof(m_csLevel);
|
||
if(nRet < nLevel)
|
||
nRet = nLevel;
|
||
m_csFireVolume.Format(_T("%.2f"), nRet);
|
||
nAllRet += nRet;
|
||
}
|
||
m_csAllVolume.Format(_T("%.2f"), nAllRet);
|
||
|
||
UpdateData(FALSE);
|
||
}
|
||
|
||
|
||
void CWaterTankCalcDlg::Reset()
|
||
{
|
||
UpdateData();
|
||
m_csLive1 = _T("");
|
||
m_csLive2 = _T("");
|
||
m_csLive3 = _T("");
|
||
m_csLive4 = _T("");
|
||
m_csLiveVolume = _T("");
|
||
|
||
CWnd *pWnd1 = GetDlgItem(IDC_STATIC_FIRE1);
|
||
CWnd *pWnd2 = GetDlgItem(IDC_STATIC_FIRE2);
|
||
CWnd *pWnd3 = GetDlgItem(IDC_EDIT_FIRE_Q);
|
||
CWnd *pWnd4 = GetDlgItem(IDC_STATIC_FIRE3);
|
||
CWnd *pWnd5 = GetDlgItem(IDC_EDIT_FIRE_TIME);
|
||
CWnd *pWnd6 = GetDlgItem(IDC_BUTTON_LEVEL);
|
||
CWnd *pWnd7 = GetDlgItem(IDC_COMBO_ARCH_LEVEL);
|
||
CWnd *pWnd8 = GetDlgItem(IDC_STATIC_FIRE4);
|
||
CWnd *pWnd9 = GetDlgItem(IDC_EDIT_FIRE_VOLUME);
|
||
//生活
|
||
CWnd *pWnd10 = GetDlgItem(IDC_RADIO_CALCMODE1);
|
||
CWnd *pWnd11 = GetDlgItem(IDC_RADIO_CALCMODE2);
|
||
CWnd *pWnd12 = GetDlgItem(IDC_STATIC_FORMULA);
|
||
CWnd *pWnd13 = GetDlgItem(IDC_STATIC_LIVE_1);
|
||
CWnd *pWnd14 = GetDlgItem(IDC_STATIC_LIVE_2);
|
||
CWnd *pWnd15 = GetDlgItem(IDC_STATIC_LIVE_3);
|
||
CWnd *pWnd16 = GetDlgItem(IDC_STATIC_LIVE_4);
|
||
CWnd *pWnd17 = GetDlgItem(IDC_STATIC_LIVE_5);
|
||
CWnd *pWnd18 = GetDlgItem(IDC_EDIT_LIVE_1);
|
||
CWnd *pWnd19 = GetDlgItem(IDC_EDIT_LIVE_2);
|
||
CWnd *pWnd20 = GetDlgItem(IDC_EDIT_LIVE_3);
|
||
CWnd *pWnd21 = GetDlgItem(IDC_EDIT_LIVE_4);
|
||
CWnd *pWnd22 = GetDlgItem(IDC_EDIT_LIVE_VOLUME);
|
||
if(m_iPurpose == 0){
|
||
pWnd1->EnableWindow(FALSE);
|
||
pWnd2->EnableWindow(FALSE);
|
||
pWnd3->EnableWindow(FALSE);
|
||
pWnd4->EnableWindow(FALSE);
|
||
pWnd5->EnableWindow(FALSE);
|
||
pWnd6->EnableWindow(FALSE);
|
||
pWnd7->EnableWindow(FALSE);
|
||
pWnd8->EnableWindow(FALSE);
|
||
pWnd9->EnableWindow(FALSE);
|
||
pWnd10->EnableWindow(TRUE);
|
||
pWnd11->EnableWindow(TRUE);
|
||
pWnd12->EnableWindow(TRUE);
|
||
pWnd13->EnableWindow(TRUE);
|
||
pWnd14->EnableWindow(TRUE);
|
||
pWnd15->EnableWindow(TRUE);
|
||
pWnd16->EnableWindow(TRUE);
|
||
pWnd17->EnableWindow(TRUE);
|
||
pWnd18->EnableWindow(TRUE);
|
||
pWnd19->EnableWindow(TRUE);
|
||
pWnd20->EnableWindow(TRUE);
|
||
pWnd21->EnableWindow(TRUE);
|
||
pWnd22->EnableWindow(TRUE);
|
||
}
|
||
else if(m_iPurpose == 1){
|
||
pWnd1->EnableWindow(TRUE);
|
||
pWnd2->EnableWindow(TRUE);
|
||
pWnd3->EnableWindow(TRUE);
|
||
pWnd4->EnableWindow(TRUE);
|
||
pWnd5->EnableWindow(TRUE);
|
||
pWnd6->EnableWindow(TRUE);
|
||
pWnd7->EnableWindow(TRUE);
|
||
pWnd8->EnableWindow(TRUE);
|
||
pWnd9->EnableWindow(TRUE);
|
||
|
||
pWnd10->EnableWindow(FALSE);
|
||
pWnd11->EnableWindow(FALSE);
|
||
pWnd12->EnableWindow(FALSE);
|
||
pWnd13->EnableWindow(FALSE);
|
||
pWnd14->EnableWindow(FALSE);
|
||
pWnd15->EnableWindow(FALSE);
|
||
pWnd16->EnableWindow(FALSE);
|
||
pWnd17->EnableWindow(FALSE);
|
||
pWnd18->EnableWindow(FALSE);
|
||
pWnd19->EnableWindow(FALSE);
|
||
pWnd20->EnableWindow(FALSE);
|
||
pWnd21->EnableWindow(FALSE);
|
||
pWnd22->EnableWindow(FALSE);
|
||
}
|
||
else if(m_iPurpose == 2){
|
||
pWnd1->EnableWindow(TRUE);
|
||
pWnd2->EnableWindow(TRUE);
|
||
pWnd3->EnableWindow(TRUE);
|
||
pWnd4->EnableWindow(TRUE);
|
||
pWnd5->EnableWindow(TRUE);
|
||
pWnd6->EnableWindow(TRUE);
|
||
pWnd7->EnableWindow(TRUE);
|
||
pWnd8->EnableWindow(TRUE);
|
||
pWnd9->EnableWindow(TRUE);
|
||
|
||
pWnd10->EnableWindow(TRUE);
|
||
pWnd11->EnableWindow(TRUE);
|
||
pWnd12->EnableWindow(TRUE);
|
||
pWnd13->EnableWindow(TRUE);
|
||
pWnd14->EnableWindow(TRUE);
|
||
pWnd15->EnableWindow(TRUE);
|
||
pWnd16->EnableWindow(TRUE);
|
||
pWnd17->EnableWindow(TRUE);
|
||
pWnd18->EnableWindow(TRUE);
|
||
pWnd19->EnableWindow(TRUE);
|
||
pWnd20->EnableWindow(TRUE);
|
||
pWnd21->EnableWindow(TRUE);
|
||
pWnd22->EnableWindow(TRUE);
|
||
}
|
||
if(m_iRunMode == 0){ //水泵自动
|
||
pWnd10->ShowWindow(SW_SHOW);
|
||
pWnd11->ShowWindow(SW_SHOW);
|
||
pWnd12->ShowWindow(SW_HIDE);
|
||
if(m_iCalcMode == 0){ //计算
|
||
pWnd13->SetWindowText(_T("每小时最大启动次数Nmax:"));
|
||
pWnd14->SetWindowText(_T("水泵的出水量Qb(m3/h):"));
|
||
pWnd15->ShowWindow(SW_HIDE);
|
||
pWnd16->ShowWindow(SW_HIDE);
|
||
pWnd20->ShowWindow(SW_HIDE);
|
||
pWnd21->ShowWindow(SW_HIDE);
|
||
}
|
||
else if(m_iCalcMode == 1){//估算
|
||
pWnd13->SetWindowText(_T("设计秒流量Q(m3/h):"));
|
||
pWnd14->SetWindowText(_T("水泵的出水量Qb(m3/h):"));
|
||
pWnd15->SetWindowText(_T("秒流量持续时间T(0.5h):"));
|
||
pWnd16->SetWindowText(_T("最短运行时间Tb(0.25h):"));
|
||
pWnd15->ShowWindow(SW_SHOW);
|
||
pWnd16->ShowWindow(SW_SHOW);
|
||
pWnd20->ShowWindow(SW_SHOW);
|
||
pWnd21->ShowWindow(SW_SHOW);
|
||
}
|
||
}
|
||
else if(m_iRunMode == 1){ //水泵人工
|
||
pWnd10->ShowWindow(SW_HIDE);
|
||
pWnd11->ShowWindow(SW_HIDE);
|
||
pWnd12->ShowWindow(SW_SHOW);
|
||
pWnd15->ShowWindow(SW_SHOW);
|
||
pWnd16->ShowWindow(SW_SHOW);
|
||
pWnd20->ShowWindow(SW_SHOW);
|
||
pWnd21->ShowWindow(SW_SHOW);
|
||
|
||
pWnd12->SetWindowText(_T("公式:Qd/n-Tb×Qm"));
|
||
pWnd13->SetWindowText(_T("最高日用水量Qd(m3):"));
|
||
pWnd14->SetWindowText(_T("平均每小时用水量Qm(m3):"));
|
||
pWnd15->SetWindowText(_T("启动一次运行时间Tb(h):"));
|
||
pWnd16->SetWindowText(_T("水泵每天启动次数(n):"));
|
||
|
||
}
|
||
else if(m_iRunMode == 2){ //单设水箱
|
||
pWnd10->ShowWindow(SW_HIDE);
|
||
pWnd11->ShowWindow(SW_HIDE);
|
||
pWnd12->ShowWindow(SW_SHOW);
|
||
pWnd12->SetWindowText(_T("公式:Qm×T"));
|
||
pWnd13->SetWindowText(_T("平均每小时用水量Qm(m3):"));
|
||
pWnd14->SetWindowText(_T("最大连续时间T(h):"));
|
||
pWnd15->ShowWindow(SW_HIDE);
|
||
pWnd16->ShowWindow(SW_HIDE);
|
||
pWnd20->ShowWindow(SW_HIDE);
|
||
pWnd21->ShowWindow(SW_HIDE);
|
||
}
|
||
UpdateData(FALSE);
|
||
}
|
||
|
||
void CWaterTankCalcDlg::OnRadioPurpose1()
|
||
{
|
||
Reset();
|
||
}
|
||
|
||
void CWaterTankCalcDlg::OnRadioPurpose2()
|
||
{
|
||
Reset();
|
||
}
|
||
|
||
void CWaterTankCalcDlg::OnRadioPurpose3()
|
||
{
|
||
Reset();
|
||
}
|
||
|
||
void CWaterTankCalcDlg::OnRadioRunmode1()
|
||
{
|
||
Reset();
|
||
}
|
||
|
||
void CWaterTankCalcDlg::OnRadioRunmode2()
|
||
{
|
||
Reset();
|
||
}
|
||
|
||
void CWaterTankCalcDlg::OnRadioRunmode3()
|
||
{
|
||
Reset();
|
||
}
|
||
|
||
void CWaterTankCalcDlg::OnRadioCalcmode1()
|
||
{
|
||
Reset();
|
||
}
|
||
|
||
void CWaterTankCalcDlg::OnRadioCalcmode2()
|
||
{
|
||
Reset();
|
||
}
|
||
|
||
void CWaterTankCalcDlg::OnButtonDwgSeries()
|
||
{
|
||
CTemporaryResourceOverride vTemp;
|
||
CSelWaterTankDlg dlg;
|
||
UpdateData(TRUE);
|
||
double dV = _tstof(m_csAllVolume);
|
||
dlg.m_dV = dV;
|
||
dlg.DoModal();
|
||
}
|