summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.codelite/.tern-port2
-rw-r--r--.codelite/PSP.session10
-rw-r--r--.codelite/PSP.tagsbin83549184 -> 83558400 bytes
-rw-r--r--.codelite/compilation.dbbin63488 -> 63488 bytes
-rw-r--r--.codelite/compile_commands.json8
-rw-r--r--.codelite/refactoring.dbbin2187264 -> 2219008 bytes
-rw-r--r--Project/Element.h4
-rw-r--r--Project/ElementForm.cpp4
-rw-r--r--Project/ElementForm.h2
-rw-r--r--Project/ElementForm.wxcp18
-rw-r--r--Project/Project.mk2
-rw-r--r--Project/Release/ElementForm.cpp.obin563331 -> 565045 bytes
-rw-r--r--Project/Release/PSP-UFU.exebin4204969 -> 4210593 bytes
-rw-r--r--Project/Release/Text.cpp.obin41237 -> 49809 bytes
-rw-r--r--Project/Release/TextForm.cpp.obin133507 -> 136935 bytes
-rw-r--r--Project/Text.cpp50
-rw-r--r--Project/Text.h16
-rw-r--r--Project/TextForm.cpp280
-rw-r--r--Project/TextForm.h7
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
index 829eee3..da5889b 100644
--- a/.codelite/PSP.tags
+++ b/.codelite/PSP.tags
Binary files differ
diff --git a/.codelite/compilation.db b/.codelite/compilation.db
index 0860fa5..9478556 100644
--- a/.codelite/compilation.db
+++ b/.codelite/compilation.db
Binary files differ
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
index 620b2ad..8e0500a 100644
--- a/.codelite/refactoring.db
+++ b/.codelite/refactoring.db
Binary files differ
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
index e9fda68..2978138 100644
--- a/Project/Release/ElementForm.cpp.o
+++ b/Project/Release/ElementForm.cpp.o
Binary files differ
diff --git a/Project/Release/PSP-UFU.exe b/Project/Release/PSP-UFU.exe
index 545a547..21bdf85 100644
--- a/Project/Release/PSP-UFU.exe
+++ b/Project/Release/PSP-UFU.exe
Binary files differ
diff --git a/Project/Release/Text.cpp.o b/Project/Release/Text.cpp.o
index 8e373b7..7071037 100644
--- a/Project/Release/Text.cpp.o
+++ b/Project/Release/Text.cpp.o
Binary files differ
diff --git a/Project/Release/TextForm.cpp.o b/Project/Release/TextForm.cpp.o
index 39968df..f32f85f 100644
--- a/Project/Release/TextForm.cpp.o
+++ b/Project/Release/TextForm.cpp.o
Binary files differ
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