diff options
-rw-r--r-- | .codelite/.tern-port | 2 | ||||
-rw-r--r-- | .codelite/PSP.session | 10 | ||||
-rw-r--r-- | .codelite/PSP.tags | bin | 83549184 -> 83558400 bytes | |||
-rw-r--r-- | .codelite/compilation.db | bin | 63488 -> 63488 bytes | |||
-rw-r--r-- | .codelite/compile_commands.json | 8 | ||||
-rw-r--r-- | .codelite/refactoring.db | bin | 2187264 -> 2219008 bytes | |||
-rw-r--r-- | Project/Element.h | 4 | ||||
-rw-r--r-- | Project/ElementForm.cpp | 4 | ||||
-rw-r--r-- | Project/ElementForm.h | 2 | ||||
-rw-r--r-- | Project/ElementForm.wxcp | 18 | ||||
-rw-r--r-- | Project/Project.mk | 2 | ||||
-rw-r--r-- | Project/Release/ElementForm.cpp.o | bin | 563331 -> 565045 bytes | |||
-rw-r--r-- | Project/Release/PSP-UFU.exe | bin | 4204969 -> 4210593 bytes | |||
-rw-r--r-- | Project/Release/Text.cpp.o | bin | 41237 -> 49809 bytes | |||
-rw-r--r-- | Project/Release/TextForm.cpp.o | bin | 133507 -> 136935 bytes | |||
-rw-r--r-- | Project/Text.cpp | 50 | ||||
-rw-r--r-- | Project/Text.h | 16 | ||||
-rw-r--r-- | Project/TextForm.cpp | 280 | ||||
-rw-r--r-- | Project/TextForm.h | 7 |
19 files changed, 347 insertions, 56 deletions
diff --git a/.codelite/.tern-port b/.codelite/.tern-port index 21f4ae1..a30d333 100644 --- a/.codelite/.tern-port +++ b/.codelite/.tern-port @@ -1 +1 @@ -63475
\ No newline at end of file +49638
\ No newline at end of file diff --git a/.codelite/PSP.session b/.codelite/PSP.session index 39a9576..3432e3e 100644 --- a/.codelite/PSP.session +++ b/.codelite/PSP.session @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Session Name="C:\Users\Thales\Documents\GitHub\PSP\PSP.workspace"> - <int Value="10" Name="m_selectedTab"/> + <int Value="7" Name="m_selectedTab"/> <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\PSP.workspace" Name="m_workspaceName"/> <TabInfoArray Name="TabInfoArray"> <TabInfo> @@ -54,8 +54,8 @@ </TabInfo> <TabInfo> <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\Text.cpp" Name="FileName"/> - <int Value="0" Name="FirstVisibleLine"/> - <int Value="16" Name="CurrentLine"/> + <int Value="47" Name="FirstVisibleLine"/> + <int Value="70" Name="CurrentLine"/> <wxArrayString Name="Bookmarks"/> <IntVector Name="CollapsedFolds"/> </TabInfo> @@ -75,8 +75,8 @@ </TabInfo> <TabInfo> <wxString Value="C:\Users\Thales\Documents\GitHub\PSP\Project\TextForm.cpp" Name="FileName"/> - <int Value="350" Name="FirstVisibleLine"/> - <int Value="373" Name="CurrentLine"/> + <int Value="357" Name="FirstVisibleLine"/> + <int Value="374" Name="CurrentLine"/> <wxArrayString Name="Bookmarks"/> <IntVector Name="CollapsedFolds"/> </TabInfo> diff --git a/.codelite/PSP.tags b/.codelite/PSP.tags Binary files differindex 829eee3..da5889b 100644 --- a/.codelite/PSP.tags +++ b/.codelite/PSP.tags diff --git a/.codelite/compilation.db b/.codelite/compilation.db Binary files differindex 0860fa5..9478556 100644 --- a/.codelite/compilation.db +++ b/.codelite/compilation.db diff --git a/.codelite/compile_commands.json b/.codelite/compile_commands.json index b60e601..1fa0735 100644 --- a/.codelite/compile_commands.json +++ b/.codelite/compile_commands.json @@ -1,9 +1,9 @@ [{ "directory": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project", - "command": "C:/TDM-GCC-64/bin/g++.exe -O2 -Wall -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -IC:/wxWidgets-3.1.0/lib/gcc_dll/mswu -IC:/wxWidgets-3.1.0/include -DWXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -fno-keep-inline-dllexport -std=c++11 -DNDEBUG -DUNICODE -I. -I. -MG -MP -MT./Release/TextForm.cpp.o -MF./Release/TextForm.cpp.o.d -MM TextForm.cpp", - "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\TextForm.cpp" + "command": "C:/TDM-GCC-64/bin/g++.exe -O2 -Wall -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -IC:/wxWidgets-3.1.0/lib/gcc_dll/mswu -IC:/wxWidgets-3.1.0/include -DWXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -fno-keep-inline-dllexport -std=c++11 -DNDEBUG -DUNICODE -I. -I. -MG -MP -MT./Release/Text.cpp.o -MF./Release/Text.cpp.o.d -MM Text.cpp", + "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Text.cpp" }, { "directory": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project", - "command": "C:/TDM-GCC-64/bin/g++.exe -c C:/Users/Thales/Documents/GitHub/PSP/Project/TextForm.cpp -O2 -Wall -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -IC:/wxWidgets-3.1.0/lib/gcc_dll/mswu -IC:/wxWidgets-3.1.0/include -DWXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -fno-keep-inline-dllexport -std=c++11 -DNDEBUG -DUNICODE -o ./Release/TextForm.cpp.o -I. -I.", - "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\TextForm.cpp" + "command": "C:/TDM-GCC-64/bin/g++.exe -c C:/Users/Thales/Documents/GitHub/PSP/Project/Text.cpp -O2 -Wall -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -IC:/wxWidgets-3.1.0/lib/gcc_dll/mswu -IC:/wxWidgets-3.1.0/include -DWXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -fno-keep-inline-dllexport -std=c++11 -DNDEBUG -DUNICODE -o ./Release/Text.cpp.o -I. -I.", + "file": "C:\\Users\\Thales\\Documents\\GitHub\\PSP\\Project\\Text.cpp" }]
\ No newline at end of file diff --git a/.codelite/refactoring.db b/.codelite/refactoring.db Binary files differindex 620b2ad..8e0500a 100644 --- a/.codelite/refactoring.db +++ b/.codelite/refactoring.db diff --git a/Project/Element.h b/Project/Element.h index f872267..0502e62 100644 --- a/Project/Element.h +++ b/Project/Element.h @@ -61,7 +61,9 @@ enum ElectricalUnit UNIT_OHM, UNIT_OHM_km, UNIT_S, - UNIT_S_km + UNIT_S_km, + UNIT_DEGREE, + UNIT_RADIAN }; enum FaultData diff --git a/Project/ElementForm.cpp b/Project/ElementForm.cpp index e6e72ed..89ef491 100644 --- a/Project/ElementForm.cpp +++ b/Project/ElementForm.cpp @@ -2767,6 +2767,8 @@ TextFormBase::TextFormBase(wxWindow* parent, wxWindowID id, const wxString& titl m_choiceTextFromBus->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnFromBusChoiceSelected), NULL, this); m_choiceTextToBus->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnToBusChoiceSelected), NULL, this); m_textCtrlDecimal->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(TextFormBase::OnTextEnter), NULL, this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnOKButtonClick), NULL, this); + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnCancelButtonClick), NULL, this); } @@ -2778,5 +2780,7 @@ TextFormBase::~TextFormBase() m_choiceTextFromBus->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnFromBusChoiceSelected), NULL, this); m_choiceTextToBus->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnToBusChoiceSelected), NULL, this); m_textCtrlDecimal->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(TextFormBase::OnTextEnter), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnOKButtonClick), NULL, this); + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnCancelButtonClick), NULL, this); } diff --git a/Project/ElementForm.h b/Project/ElementForm.h index 3b36fed..6645b96 100644 --- a/Project/ElementForm.h +++ b/Project/ElementForm.h @@ -742,6 +742,8 @@ protected: virtual void OnFromBusChoiceSelected(wxCommandEvent& event) { event.Skip(); } virtual void OnToBusChoiceSelected(wxCommandEvent& event) { event.Skip(); } virtual void OnTextEnter(wxCommandEvent& event) { event.Skip(); } + virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } public: wxStaticText* GetStaticTextElement() { return m_staticTextElement; } diff --git a/Project/ElementForm.wxcp b/Project/ElementForm.wxcp index 8d9def3..b61d5a0 100644 --- a/Project/ElementForm.wxcp +++ b/Project/ElementForm.wxcp @@ -29220,7 +29220,14 @@ "m_label": "Margins:", "m_value": "2,2" }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnOKButtonClick(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4400, @@ -29308,7 +29315,14 @@ "m_label": "Margins:", "m_value": "2,2" }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCancelButtonClick(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], "m_children": [] }] }] diff --git a/Project/Project.mk b/Project/Project.mk index 38c81ac..62bac5f 100644 --- a/Project/Project.mk +++ b/Project/Project.mk @@ -13,7 +13,7 @@ CurrentFileName := CurrentFilePath := CurrentFileFullPath := User :=Thales -Date :=30/11/2016 +Date :=01/12/2016 CodeLitePath :="C:/Program Files/CodeLite" LinkerName :=C:/TDM-GCC-64/bin/g++.exe SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC diff --git a/Project/Release/ElementForm.cpp.o b/Project/Release/ElementForm.cpp.o Binary files differindex e9fda68..2978138 100644 --- a/Project/Release/ElementForm.cpp.o +++ b/Project/Release/ElementForm.cpp.o diff --git a/Project/Release/PSP-UFU.exe b/Project/Release/PSP-UFU.exe Binary files differindex 545a547..21bdf85 100644 --- a/Project/Release/PSP-UFU.exe +++ b/Project/Release/PSP-UFU.exe diff --git a/Project/Release/Text.cpp.o b/Project/Release/Text.cpp.o Binary files differindex 8e373b7..7071037 100644 --- a/Project/Release/Text.cpp.o +++ b/Project/Release/Text.cpp.o diff --git a/Project/Release/TextForm.cpp.o b/Project/Release/TextForm.cpp.o Binary files differindex 39968df..f32f85f 100644 --- a/Project/Release/TextForm.cpp.o +++ b/Project/Release/TextForm.cpp.o diff --git a/Project/Text.cpp b/Project/Text.cpp index 839e6f8..2d8e85c 100644 --- a/Project/Text.cpp +++ b/Project/Text.cpp @@ -2,6 +2,15 @@ #include "Text.h" #include "ElectricCalculation.h" +#include "Bus.h" +#include "Line.h" +#include "Transformer.h" +#include "SyncGenerator.h" +#include "IndMotor.h" +#include "SyncMotor.h" +#include "Load.h" +#include "Inductor.h" +#include "Capacitor.h" Text::Text() : Element() { SetText(m_text); } Text::Text(wxPoint2DDouble position) : Element() @@ -88,3 +97,44 @@ bool Text::ShowForm(wxWindow* parent, std::vector<Element*> elementList) textForm->Destroy(); return false; } + +void Text::UpdateText(double systemPowerBase) +{ + switch(m_elementType) { + case TYPE_BUS: { + Bus* bus = (Bus*)m_element; + if(bus) { + switch(m_dataType) { + case DATA_NAME: { + SetText(bus->GetEletricalData().name); + wxLogMessage(m_text); + } break; + } + } + } break; + case TYPE_SYNC_GENERATOR: { + + } break; + case TYPE_LINE: { + + } break; + case TYPE_TRANSFORMER: { + + } break; + case TYPE_LOAD: { + + } break; + case TYPE_SYNC_MOTOR: { + + } break; + case TYPE_IND_MOTOR: { + + } break; + case TYPE_CAPACITOR: { + + } break; + case TYPE_INDUCTOR: { + + } break; + } +} diff --git a/Project/Text.h b/Project/Text.h index 24f9228..2b10380 100644 --- a/Project/Text.h +++ b/Project/Text.h @@ -6,6 +6,16 @@ class TextForm; +class Bus; +class Line; +class Transformer; +class SyncGenerator; +class IndMotor; +class SyncMotor; +class Load; +class Inductor; +class Capacitor; + enum ElementType { TYPE_BUS, TYPE_CAPACITOR, @@ -46,6 +56,7 @@ class Text : public Element virtual bool Intersects(wxRect2DDouble rect) const; virtual void Rotate(bool clockwise = true); virtual bool ShowForm(wxWindow* parent, std::vector<Element*> elementList); + virtual void UpdateText(double systemPowerBase); virtual wxString GetText() const { return m_text; } virtual void SetText(wxString text); @@ -56,6 +67,7 @@ class Text : public Element void SetElementType(const ElementType elementType) { m_elementType = elementType; } void SetFontSize(int fontSize) { m_fontSize = fontSize; } void SetUnit(const ElectricalUnit unit) { m_unit = unit; } + void SetDecimalPlaces(int decimalPlaces) { m_decimalPlaces = decimalPlaces; } const DataType GetDataType() const { return m_dataType; } int GetDirection() const { return m_direction; } Element* GetElement() { return m_element; } @@ -63,17 +75,19 @@ class Text : public Element const ElementType GetElementType() const { return m_elementType; } int GetFontSize() const { return m_fontSize; } const ElectricalUnit GetUnit() const { return m_unit; } + int GetDecimalPlaces() const { return m_decimalPlaces; } protected: wxString m_text = _("Text"); int m_fontSize = 10; - Element* m_element; + Element* m_element = NULL; ElementType m_elementType; int m_elementNumber; DataType m_dataType; ElectricalUnit m_unit; int m_direction; + int m_decimalPlaces; }; #endif // TEXT_H diff --git a/Project/TextForm.cpp b/Project/TextForm.cpp index 8c9c724..2fd9c9f 100644 --- a/Project/TextForm.cpp +++ b/Project/TextForm.cpp @@ -1,10 +1,12 @@ #include "TextForm.h" -TextForm::TextForm(wxWindow* parent, Text* text, std::vector<Element*> elementList) : TextFormBase(parent) +TextForm::TextForm(wxWindow* parent, Text* text, std::vector<Element*> elementList, double systemPowerBase) + : TextFormBase(parent) { m_parent = parent; m_text = text; m_allElements.GetElementsFromList(elementList); + m_systemPowerBase = systemPowerBase; m_choiceName->Enable(false); m_choiceTextType->Enable(false); @@ -52,7 +54,12 @@ void TextForm::OnElementChoiceSelected(wxCommandEvent& event) ElementTypeChoice(); } -void TextForm::OnFromBusChoiceSelected(wxCommandEvent& event) {} +void TextForm::OnFromBusChoiceSelected(wxCommandEvent& event) +{ + m_text->SetDirection(m_choiceTextFromBus->GetSelection()); + m_choiceTextToBus->SetSelection(m_choiceTextFromBus->GetSelection()); +} + void TextForm::OnNameChoiceSelected(wxCommandEvent& event) { m_text->SetElementNumber(m_choiceName->GetSelection()); @@ -60,7 +67,12 @@ void TextForm::OnNameChoiceSelected(wxCommandEvent& event) } void TextForm::OnTextEnter(wxCommandEvent& event) {} -void TextForm::OnToBusChoiceSelected(wxCommandEvent& event) {} +void TextForm::OnToBusChoiceSelected(wxCommandEvent& event) +{ + m_text->SetDirection(m_choiceTextToBus->GetSelection()); + m_choiceTextFromBus->SetSelection(m_choiceTextToBus->GetSelection()); +} + void TextForm::OnTypeChoiceSelected(wxCommandEvent& event) { switch(m_text->GetElementType()) { @@ -159,6 +171,15 @@ void TextForm::OnTypeChoiceSelected(wxCommandEvent& event) void TextForm::ElementTypeChoice() { + m_choiceTextType->Enable(false); + m_choiceTextFromBus->Enable(false); + m_choiceTextToBus->Enable(false); + m_choiceTextUnit->Enable(false); + m_choiceTextType->Clear(); + m_choiceTextFromBus->Clear(); + m_choiceTextToBus->Clear(); + m_choiceTextUnit->Clear(); + m_choiceName->Clear(); wxArrayString arrayString; switch(m_text->GetElementType()) { @@ -226,10 +247,24 @@ void TextForm::ElementTypeChoice() void TextForm::ElementNumberChoice() { + m_choiceTextFromBus->Enable(false); + m_choiceTextToBus->Enable(false); + m_choiceTextUnit->Enable(false); + m_choiceTextFromBus->Clear(); + m_choiceTextToBus->Clear(); + m_choiceTextUnit->Clear(); + + int index = m_choiceName->GetSelection(); + m_text->SetElementNumber(index); + m_choiceTextType->Clear(); wxArrayString arrayString; switch(m_text->GetElementType()) { case TYPE_BUS: { + auto it = m_allElements.GetBusList().begin(); + std::advance(it, index); + m_text->SetElement(*it); + arrayString.Add(_("Name")); arrayString.Add(_("Voltage")); arrayString.Add(_("Angle")); @@ -238,13 +273,33 @@ void TextForm::ElementNumberChoice() arrayString.Add(_("Short-circuit power")); } break; case TYPE_SYNC_GENERATOR: { + auto it = m_allElements.GetSyncGeneratorList().begin(); + std::advance(it, index); + m_text->SetElement(*it); + arrayString.Add(_("Name")); arrayString.Add(_("Active power")); arrayString.Add(_("Reactive power")); arrayString.Add(_("Fault current")); } break; case TYPE_LINE: + { + auto it = m_allElements.GetLineList().begin(); + std::advance(it, index); + m_text->SetElement(*it); + + arrayString.Add(_("Name")); + arrayString.Add(_("Active power flow")); + arrayString.Add(_("Reactive power flow")); + arrayString.Add(_("Losses")); + arrayString.Add(_("Current")); + arrayString.Add(_("Fault current")); + } break; case TYPE_TRANSFORMER: { + auto it = m_allElements.GetTransformerList().begin(); + std::advance(it, index); + m_text->SetElement(*it); + arrayString.Add(_("Name")); arrayString.Add(_("Active power flow")); arrayString.Add(_("Reactive power flow")); @@ -253,17 +308,44 @@ void TextForm::ElementNumberChoice() arrayString.Add(_("Fault current")); } break; case TYPE_LOAD: { + auto it = m_allElements.GetLoadList().begin(); + std::advance(it, index); + m_text->SetElement(*it); + arrayString.Add(_("Name")); arrayString.Add(_("Active power")); arrayString.Add(_("Reactive power")); } break; - case TYPE_CAPACITOR: + case TYPE_CAPACITOR: { + auto it = m_allElements.GetCapacitorList().begin(); + std::advance(it, index); + m_text->SetElement(*it); + + arrayString.Add(_("Name")); + arrayString.Add(_("Reactive power")); + } break; case TYPE_INDUCTOR: { + auto it = m_allElements.GetInductorList().begin(); + std::advance(it, index); + m_text->SetElement(*it); + arrayString.Add(_("Name")); arrayString.Add(_("Reactive power")); } break; - case TYPE_SYNC_MOTOR: + case TYPE_SYNC_MOTOR: { + auto it = m_allElements.GetSyncMotorList().begin(); + std::advance(it, index); + m_text->SetElement(*it); + + arrayString.Add(_("Name")); + arrayString.Add(_("Active power")); + arrayString.Add(_("Reactive power")); + } break; case TYPE_IND_MOTOR: { + auto it = m_allElements.GetIndMotorList().begin(); + std::advance(it, index); + m_text->SetElement(*it); + arrayString.Add(_("Name")); arrayString.Add(_("Active power")); arrayString.Add(_("Reactive power")); @@ -278,14 +360,19 @@ void TextForm::ElementNumberChoice() void TextForm::DataTypeChoice() { + m_choiceTextFromBus->Enable(false); + m_choiceTextToBus->Enable(false); + m_choiceTextToBus->Clear(); m_choiceTextFromBus->Clear(); m_choiceTextUnit->Clear(); + m_choiceTextUnit->Enable(); wxArrayString arrayString; switch(m_text->GetDataType()) { case DATA_NAME: { m_choiceTextUnit->Enable(false); + m_text->UpdateText(m_systemPowerBase); return; } break; case DATA_VOLTAGE: @@ -333,50 +420,167 @@ void TextForm::DataTypeChoice() switch(m_text->GetElementType()) { case TYPE_LINE: { - auto it = m_allElements.GetLineList().begin(); - std::advance(it, m_text->GetElementNumber()); - Line* line = *it; + if(m_text->GetDataType() != DATA_PF_LOSSES) { + auto it = m_allElements.GetLineList().begin(); + std::advance(it, m_text->GetElementNumber()); + Line* line = *it; - Bus* bus1 = (Bus*)line->GetParentList()[0]; - Bus* bus2 = (Bus*)line->GetParentList()[1]; - wxString bus1Name = bus1->GetEletricalData().name; - wxString bus2Name = bus2->GetEletricalData().name; + Bus* bus1 = (Bus*)line->GetParentList()[0]; + Bus* bus2 = (Bus*)line->GetParentList()[1]; + wxString bus1Name = bus1->GetEletricalData().name; + wxString bus2Name = bus2->GetEletricalData().name; - m_choiceTextFromBus->Append(bus1Name); - m_choiceTextFromBus->Append(bus2Name); - m_choiceTextToBus->Append(bus2Name); - m_choiceTextToBus->Append(bus1Name); - m_choiceTextFromBus->SetSelection(0); - m_choiceTextToBus->SetSelection(0); + m_choiceTextFromBus->Append(bus1Name); + m_choiceTextFromBus->Append(bus2Name); + m_choiceTextToBus->Append(bus2Name); + m_choiceTextToBus->Append(bus1Name); + m_choiceTextFromBus->SetSelection(0); + m_choiceTextToBus->SetSelection(0); + m_text->SetDirection(0); - m_choiceTextFromBus->Enable(); - m_choiceTextToBus->Enable(); + m_choiceTextFromBus->Enable(); + m_choiceTextToBus->Enable(); + } } break; case TYPE_TRANSFORMER: { - auto it = m_allElements.GetTransformerList().begin(); - std::advance(it, m_text->GetElementNumber()); - Transformer* transformer = *it; + if(m_text->GetDataType() != DATA_PF_LOSSES) { + auto it = m_allElements.GetTransformerList().begin(); + std::advance(it, m_text->GetElementNumber()); + Transformer* transformer = *it; - Bus* bus1 = (Bus*)transformer->GetParentList()[0]; - Bus* bus2 = (Bus*)transformer->GetParentList()[1]; - wxString bus1Name = bus1->GetEletricalData().name; - wxString bus2Name = bus2->GetEletricalData().name; + Bus* bus1 = (Bus*)transformer->GetParentList()[0]; + Bus* bus2 = (Bus*)transformer->GetParentList()[1]; + wxString bus1Name = bus1->GetEletricalData().name; + wxString bus2Name = bus2->GetEletricalData().name; - m_choiceTextFromBus->Append(bus1Name); - m_choiceTextFromBus->Append(bus2Name); - m_choiceTextToBus->Append(bus2Name); - m_choiceTextToBus->Append(bus1Name); - m_choiceTextFromBus->SetSelection(0); - m_choiceTextToBus->SetSelection(0); + m_choiceTextFromBus->Append(bus1Name); + m_choiceTextFromBus->Append(bus2Name); + m_choiceTextToBus->Append(bus2Name); + m_choiceTextToBus->Append(bus1Name); + m_choiceTextFromBus->SetSelection(0); + m_choiceTextToBus->SetSelection(0); + m_text->SetDirection(0); - m_choiceTextFromBus->Enable(); - m_choiceTextToBus->Enable(); + m_choiceTextFromBus->Enable(); + m_choiceTextToBus->Enable(); + } } break; default: break; } } -void TextForm::FromChoice() {} -void TextForm::ToChoice() {} -void TextForm::UnitChoice() {} +void TextForm::UnitChoice() +{ + switch(m_text->GetDataType()) { + case DATA_NAME: { + m_choiceTextUnit->Enable(false); + return; + } break; + case DATA_VOLTAGE: + case DATA_SC_VOLTAGE: { + switch(m_choiceTextUnit->GetSelection()) { + case 0: { + m_text->SetUnit(UNIT_PU); + } break; + case 1: { + m_text->SetUnit(UNIT_V); + } break; + case 2: { + m_text->SetUnit(UNIT_kV); + } break; + default: + break; + } + } break; + case DATA_ANGLE: { + switch(m_choiceTextUnit->GetSelection()) { + case 0: { + m_text->SetUnit(UNIT_DEGREE); + } break; + case 1: { + m_text->SetUnit(UNIT_RADIAN); + } break; + default: + break; + } + } break; + case DATA_SC_CURRENT: + case DATA_PF_CURRENT: { + switch(m_choiceTextUnit->GetSelection()) { + case 0: { + m_text->SetUnit(UNIT_PU); + } break; + case 1: { + m_text->SetUnit(UNIT_A); + } break; + case 2: { + m_text->SetUnit(UNIT_kA); + } break; + default: + break; + } + } break; + case DATA_SC_POWER: { + switch(m_choiceTextUnit->GetSelection()) { + case 0: { + m_text->SetUnit(UNIT_PU); + } break; + case 1: { + m_text->SetUnit(UNIT_VA); + } break; + case 2: { + m_text->SetUnit(UNIT_kVA); + } break; + case 3: { + m_text->SetUnit(UNIT_MVA); + } break; + default: + break; + } + } break; + case DATA_ACTIVE_POWER: + case DATA_PF_ACTIVE: + case DATA_PF_LOSSES: { + switch(m_choiceTextUnit->GetSelection()) { + case 0: { + m_text->SetUnit(UNIT_PU); + } break; + case 1: { + m_text->SetUnit(UNIT_W); + } break; + case 2: { + m_text->SetUnit(UNIT_kW); + } break; + case 3: { + m_text->SetUnit(UNIT_MW); + } break; + default: + break; + } + } break; + case DATA_REACTIVE_POWER: + case DATA_PF_REACTIVE: { + switch(m_choiceTextUnit->GetSelection()) { + case 0: { + m_text->SetUnit(UNIT_PU); + } break; + case 1: { + m_text->SetUnit(UNIT_VAr); + } break; + case 2: { + m_text->SetUnit(UNIT_kVAr); + } break; + case 3: { + m_text->SetUnit(UNIT_MVAr); + } break; + default: + break; + } + } break; + default: + break; + } + + m_text->UpdateText(m_systemPowerBase); +} diff --git a/Project/TextForm.h b/Project/TextForm.h index b33d02b..1a22baa 100644 --- a/Project/TextForm.h +++ b/Project/TextForm.h @@ -8,16 +8,16 @@ class TextForm : public TextFormBase { public: - TextForm(wxWindow* parent, Text* text, std::vector<Element*> elementList); + TextForm(wxWindow* parent, Text* text, std::vector<Element*> elementList, double systemPowerBase = 100e6); virtual ~TextForm(); virtual void ElementTypeChoice(); virtual void ElementNumberChoice(); virtual void DataTypeChoice(); - virtual void FromChoice(); - virtual void ToChoice(); virtual void UnitChoice(); protected: + virtual void OnCancelButtonClick(wxCommandEvent& event) { EndModal(wxID_CANCEL); } + virtual void OnOKButtonClick(wxCommandEvent& event) { EndModal(wxID_OK); } virtual void OnElementChoiceSelected(wxCommandEvent& event); virtual void OnFromBusChoiceSelected(wxCommandEvent& event); virtual void OnNameChoiceSelected(wxCommandEvent& event); @@ -28,5 +28,6 @@ class TextForm : public TextFormBase Text* m_text; wxWindow* m_parent; ElectricCalculation m_allElements; + double m_systemPowerBase; }; #endif // TEXTFORM_H |