summaryrefslogtreecommitdiffstats
path: root/Project/TransformerForm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Project/TransformerForm.cpp')
-rw-r--r--Project/TransformerForm.cpp179
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;
}