diff options
Diffstat (limited to 'Project/TransformerForm.cpp')
-rw-r--r-- | Project/TransformerForm.cpp | 179 |
1 files changed, 143 insertions, 36 deletions
diff --git a/Project/TransformerForm.cpp b/Project/TransformerForm.cpp index 96c4faa..3d87a13 100644 --- a/Project/TransformerForm.cpp +++ b/Project/TransformerForm.cpp @@ -2,49 +2,50 @@ #include "SwitchingForm.h" #include "Transformer.h" -TransformerForm::TransformerForm(wxWindow* parent, Transformer* transformer) - : TransformerFormBase(parent) +TransformerForm::TransformerForm(wxWindow* parent, Transformer* transformer) : TransformerFormBase(parent) { m_choiceResistance->SetString(1, L'\u03A9'); m_choiceReactance->SetString(1, L'\u03A9'); - + SetSize(GetBestSize()); Layout(); - + m_parent = parent; m_transformer = transformer; - + TransformerElectricalData data = transformer->GetElectricalData(); - + m_textCtrlName->SetValue(data.name); - - wxString nominalVoltageStr = wxString::FromDouble(data.primaryNominalVoltage); + + wxString primVoltStr = Transformer::StringFromDouble(data.primaryNominalVoltage); switch(data.primaryNominalVoltageUnit) { case UNIT_V: { - nominalVoltageStr += " V"; + primVoltStr += " V"; } break; case UNIT_kV: { - nominalVoltageStr += " kV"; + primVoltStr += " kV"; } break; default: break; } - nominalVoltageStr += " / " + wxString::FromDouble(data.secondaryNominalVoltage); + wxString secVoltStr = Transformer::StringFromDouble(data.secondaryNominalVoltage); switch(data.secondaryNominalVoltageUnit) { case UNIT_V: { - nominalVoltageStr += " V"; + secVoltStr += " V"; } break; case UNIT_kV: { - nominalVoltageStr += " kV"; + secVoltStr += " kV"; } break; default: break; } - m_staticTextNominalVoltageValue->SetLabel(nominalVoltageStr); + m_staticTextNominalVoltageValue->SetLabel(wxString::Format("%s / %s", primVoltStr, secVoltStr)); + m_choiceBaseVoltage->SetString(0, primVoltStr); + m_choiceBaseVoltage->SetString(1, secVoltStr); m_choiceBaseVoltage->SetSelection(data.baseVoltage); - - m_textCtrlNominalPower->SetValue(wxString::FromDouble(data.nominalPower)); + + m_textCtrlNominalPower->SetValue(Transformer::StringFromDouble(data.nominalPower)); switch(data.nominalPowerUnit) { case UNIT_VA: { m_choiceNominalPower->SetSelection(0); @@ -58,8 +59,8 @@ TransformerForm::TransformerForm(wxWindow* parent, Transformer* transformer) default: break; } - - m_textCtrlResistance->SetValue(wxString::FromDouble(data.resistance)); + + m_textCtrlResistance->SetValue(Transformer::StringFromDouble(data.resistance)); switch(data.resistanceUnit) { case UNIT_PU: { m_choiceResistance->SetSelection(0); @@ -71,7 +72,7 @@ TransformerForm::TransformerForm(wxWindow* parent, Transformer* transformer) break; } - m_textCtrlReactance->SetValue(wxString::FromDouble(data.indReactance)); + m_textCtrlReactance->SetValue(Transformer::StringFromDouble(data.indReactance)); switch(data.indReactanceUnit) { case UNIT_PU: { m_choiceReactance->SetSelection(0); @@ -82,28 +83,24 @@ TransformerForm::TransformerForm(wxWindow* parent, Transformer* transformer) default: break; } - + m_choiceConnection->SetSelection(data.connection); + + m_textCtrlTurnRatio->SetValue(Transformer::StringFromDouble(data.turnsRatio)); + m_textCtrlPhaseShift->SetValue(Transformer::StringFromDouble(data.phaseShift)); - m_textCtrlTurnRatio->SetValue(wxString::FromDouble(data.turnsRatio)); - m_textCtrlPhaseShift->SetValue(wxString::FromDouble(data.phaseShift)); - - m_textCtrlZeroResistance->SetValue(wxString::FromDouble(data.zeroResistance)); - m_textCtrlZeroReactance->SetValue(wxString::FromDouble(data.zeroIndReactance)); - m_textCtrlPrimResistance->SetValue(wxString::FromDouble(data.primaryGrndResistance)); - m_textCtrlPrimReactance->SetValue(wxString::FromDouble(data.primaryGrndReactance)); - m_textCtrlSecResistance->SetValue(wxString::FromDouble(data.secondaryGrndResistance)); - m_textCtrlSecReactance->SetValue(wxString::FromDouble(data.secondaryGrndReactance)); -} + m_checkUseTransformerPower->SetValue(data.useTransformerPower); -TransformerForm::~TransformerForm() -{ + m_textCtrlZeroResistance->SetValue(Transformer::StringFromDouble(data.zeroResistance)); + m_textCtrlZeroReactance->SetValue(Transformer::StringFromDouble(data.zeroIndReactance)); + m_textCtrlPrimResistance->SetValue(Transformer::StringFromDouble(data.primaryGrndResistance)); + m_textCtrlPrimReactance->SetValue(Transformer::StringFromDouble(data.primaryGrndReactance)); + m_textCtrlSecResistance->SetValue(Transformer::StringFromDouble(data.secondaryGrndResistance)); + m_textCtrlSecReactance->SetValue(Transformer::StringFromDouble(data.secondaryGrndReactance)); } -void TransformerForm::OnCancelButtonClick(wxCommandEvent& event) -{ - EndModal(wxID_CANCEL); -} +TransformerForm::~TransformerForm() {} +void TransformerForm::OnCancelButtonClick(wxCommandEvent& event) { EndModal(wxID_CANCEL); } void TransformerForm::OnOKButtonClick(wxCommandEvent& event) { if(ValidateData()) EndModal(wxID_OK); @@ -120,5 +117,115 @@ void TransformerForm::OnStabilityButtonClick(wxCommandEvent& event) bool TransformerForm::ValidateData() { + TransformerElectricalData data; + + data.name = m_textCtrlName->GetValue(); + data.baseVoltage = m_choiceBaseVoltage->GetSelection(); + + if(!m_transformer->DoubleFromString(m_parent, m_textCtrlNominalPower->GetValue(), data.nominalPower, + _("Value entered incorrectly in the field \"Nominal power\"."))) + return false; + switch(m_choiceNominalPower->GetSelection()) { + case 0: { + data.nominalPowerUnit = UNIT_VA; + } break; + case 1: { + data.nominalPowerUnit = UNIT_kVA; + } break; + case 2: { + data.nominalPowerUnit = UNIT_MVA; + } break; + } + + if(!m_transformer->DoubleFromString(m_parent, m_textCtrlResistance->GetValue(), data.resistance, + _("Value entered incorrectly in the field \"Resistance\"."))) + return false; + switch(m_choiceResistance->GetSelection()) { + case 0: { + data.resistanceUnit = UNIT_PU; + } break; + case 1: { + data.resistanceUnit = UNIT_OHM; + } break; + } + + if(!m_transformer->DoubleFromString(m_parent, m_textCtrlReactance->GetValue(), data.indReactance, + _("Value entered incorrectly in the field \"Indutive reactance\"."))) + return false; + switch(m_choiceReactance->GetSelection()) { + case 0: { + data.indReactanceUnit = UNIT_PU; + } break; + case 1: { + data.indReactanceUnit = UNIT_OHM; + } break; + } + + switch(m_choiceConnection->GetSelection()) { + case 0: { + data.connection = GWYE_GWYE; + } break; + case 1: { + data.connection = WYE_GWYE; + } break; + case 2: { + data.connection = GWYE_WYE; + } break; + case 3: { + data.connection = WYE_WYE; + } break; + case 4: { + data.connection = DELTA_GWYE; + } break; + case 5: { + data.connection = DELTA_WYE; + } break; + case 6: { + data.connection = GWYE_DELTA; + } break; + case 7: { + data.connection = WYE_DELTA; + } break; + case 8: { + data.connection = DELTA_DELTA; + } break; + } + + if(!m_transformer->DoubleFromString(m_parent, m_textCtrlTurnRatio->GetValue(), data.turnsRatio, + _("Value entered incorrectly in the field \"Turns ratio\"."))) + return false; + + if(!m_transformer->DoubleFromString(m_parent, m_textCtrlPhaseShift->GetValue(), data.phaseShift, + _("Value entered incorrectly in the field \"Phase shift\"."))) + return false; + + data.useTransformerPower = m_checkUseTransformerPower->GetValue(); + + if(!m_transformer->DoubleFromString(m_parent, m_textCtrlZeroResistance->GetValue(), data.zeroResistance, + _("Value entered incorrectly in the field \"Zero sequence resistance\"."))) + return false; + + if(!m_transformer->DoubleFromString( + m_parent, m_textCtrlZeroReactance->GetValue(), data.zeroIndReactance, + _("Value entered incorrectly in the field \"Zero sequence indutive reactance\"."))) + return false; + + if(!m_transformer->DoubleFromString(m_parent, m_textCtrlPrimResistance->GetValue(), data.primaryGrndResistance, + _("Value entered incorrectly in the field \"Primary ground resistance\"."))) + return false; + + if(!m_transformer->DoubleFromString(m_parent, m_textCtrlPrimReactance->GetValue(), data.primaryGrndReactance, + _("Value entered incorrectly in the field \"Primary ground reactance\"."))) + return false; + + if(!m_transformer->DoubleFromString(m_parent, m_textCtrlSecResistance->GetValue(), data.secondaryGrndResistance, + _("Value entered incorrectly in the field \"Secondary ground resistance\"."))) + return false; + + if(!m_transformer->DoubleFromString(m_parent, m_textCtrlSecReactance->GetValue(), data.secondaryGrndReactance, + _("Value entered incorrectly in the field \"Secondary ground reactance\"."))) + return false; + + m_transformer->SetElectricaData(data); return true; } |