summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Project/Bus.cpp20
-rw-r--r--Project/Bus.h10
-rw-r--r--Project/Capacitor.cpp22
-rw-r--r--Project/Capacitor.h2
-rw-r--r--Project/ChartView.cpp34
-rw-r--r--Project/ConnectionLine.cpp8
-rw-r--r--Project/ConnectionLine.h6
-rw-r--r--Project/ControlEditor.cpp155
-rw-r--r--Project/ControlEditor.h6
-rw-r--r--Project/ControlElementSolver.cpp2
-rw-r--r--Project/ControlElementSolver.h4
-rw-r--r--Project/ElectricCalculation.cpp12
-rw-r--r--Project/ElementPlotData.h2
-rw-r--r--Project/FileHanding.cpp2
-rw-r--r--Project/HarmCurrent.cpp8
-rw-r--r--Project/IndMotor.cpp48
-rw-r--r--Project/IndMotor.h8
-rw-r--r--Project/IndMotorForm.cpp16
-rw-r--r--Project/Inductor.cpp14
-rw-r--r--Project/Inductor.h2
-rw-r--r--Project/Line.cpp10
-rw-r--r--Project/Load.cpp48
-rw-r--r--Project/Load.h6
-rw-r--r--Project/LoadForm.cpp32
-rw-r--r--Project/MainFrame.cpp6
-rw-r--r--Project/PSP-UFU.vcxproj1
-rw-r--r--Project/PowerElement.cpp18
-rw-r--r--Project/PowerElement.h20
-rw-r--r--Project/ReactiveShuntElementForm.cpp24
-rw-r--r--Project/SyncGenerator.cpp46
-rw-r--r--Project/SyncGenerator.h14
-rw-r--r--Project/SyncMachineForm.cpp152
-rw-r--r--Project/SyncMotor.cpp42
-rw-r--r--Project/SyncMotor.h12
-rw-r--r--Project/Text.cpp200
-rw-r--r--Project/TextForm.cpp222
-rw-r--r--Project/Transformer.cpp32
-rw-r--r--Project/Transformer.h10
-rw-r--r--Project/Workspace.cpp168
-rw-r--r--Project/Workspace.h6
-rw-r--r--Project/main.cpp4
41 files changed, 733 insertions, 721 deletions
diff --git a/Project/Bus.cpp b/Project/Bus.cpp
index d3465cc..0f79d0f 100644
--- a/Project/Bus.cpp
+++ b/Project/Bus.cpp
@@ -288,7 +288,9 @@ wxString Bus::GetTipText() const
tipText += wxString::Format(" (%d)", m_electricalData.number + 1);
tipText += "\n";
tipText += StringFromDouble(m_electricalData.nominalVoltage, 1) +
- (m_electricalData.nominalVoltageUnit == UNIT_V ? _(" V") : _(" kV"));
+ (m_electricalData.nominalVoltageUnit == ElectricalUnit::UNIT_V
+ ? _(" V")
+ : _(" kV"));
tipText += "\n";
tipText += _("\nV = ") + wxString::FromDouble(std::abs(m_electricalData.voltage), 5) + _(" p.u.");
tipText += "\n";
@@ -306,17 +308,17 @@ wxString Bus::GetTipText() const
}
tipText += _("\n\nSsc = ") + wxString::FromDouble(std::abs(m_electricalData.scPower), 5) + _(" p.u.");
- tipText += _("\n\nTHD = ") + wxString::FromDouble(std::abs(m_electricalData.thd), 5) + wxT("\%");
+ tipText += _("\n\nTHD = ") + wxString::FromDouble(std::abs(m_electricalData.thd), 5) + wxT("%");
return tipText;
}
bool Bus::GetPlotData(ElementPlotData& plotData, PlotStudy study)
{
- if(study == STABILITY) {
+ if(study == PlotStudy::STABILITY) {
if(!m_electricalData.plotBus) return false;
plotData.SetName(m_electricalData.name);
- plotData.SetCurveType(ElementPlotData::CT_BUS);
+ plotData.SetCurveType(ElementPlotData::CurveType::CT_BUS);
std::vector<double> absVoltage, argVoltage;
for(unsigned int i = 0; i < m_electricalData.stabVoltageVector.size(); ++i) {
@@ -325,10 +327,10 @@ bool Bus::GetPlotData(ElementPlotData& plotData, PlotStudy study)
}
plotData.AddData(absVoltage, _("Voltage"));
plotData.AddData(argVoltage, _("Angle"));
- } else if(FREQRESPONSE) {
+ } else if (study == PlotStudy::FREQRESPONSE) {
if(!m_electricalData.plotPQData) return false;
plotData.SetName(m_electricalData.name);
- plotData.SetCurveType(ElementPlotData::CT_BUS);
+ plotData.SetCurveType(ElementPlotData::CurveType::CT_BUS);
plotData.AddData(m_electricalData.absImpedanceVector, _("Impedance"));
}
return true;
@@ -348,7 +350,7 @@ rapidxml::xml_node<>* Bus::SaveElement(rapidxml::xml_document<>& doc, rapidxml::
XMLParser::SetNodeValue(doc, name, m_electricalData.name);
auto nominalVoltage = XMLParser::AppendNode(doc, electricalProp, "NominalVoltage");
XMLParser::SetNodeValue(doc, nominalVoltage, m_electricalData.nominalVoltage);
- XMLParser::SetNodeAttribute(doc, nominalVoltage, "UnitID", m_electricalData.nominalVoltageUnit);
+ XMLParser::SetNodeAttribute(doc, nominalVoltage, "UnitID", static_cast<int>(m_electricalData.nominalVoltageUnit));
auto isVoltageControlled = XMLParser::AppendNode(doc, electricalProp, "IsVoltageControlled");
XMLParser::SetNodeValue(doc, isVoltageControlled, m_electricalData.isVoltageControlled);
auto controlledVoltage = XMLParser::AppendNode(doc, electricalProp, "ControlledVoltage");
@@ -361,9 +363,9 @@ rapidxml::xml_node<>* Bus::SaveElement(rapidxml::xml_document<>& doc, rapidxml::
auto hasFault = XMLParser::AppendNode(doc, fault, "HasFault");
XMLParser::SetNodeValue(doc, hasFault, m_electricalData.hasFault);
auto faultType = XMLParser::AppendNode(doc, fault, "Type");
- XMLParser::SetNodeValue(doc, faultType, m_electricalData.faultType);
+ XMLParser::SetNodeValue(doc, faultType, static_cast<int>(m_electricalData.faultType));
auto faultLocation = XMLParser::AppendNode(doc, fault, "Location");
- XMLParser::SetNodeValue(doc, faultLocation, m_electricalData.faultLocation);
+ XMLParser::SetNodeValue(doc, faultLocation, static_cast<int>(m_electricalData.faultLocation));
auto faultResistance = XMLParser::AppendNode(doc, fault, "Resistance");
XMLParser::SetNodeValue(doc, faultResistance, m_electricalData.faultResistance);
auto faultReactance = XMLParser::AppendNode(doc, fault, "Reactance");
diff --git a/Project/Bus.h b/Project/Bus.h
index 0b4bb53..50ce004 100644
--- a/Project/Bus.h
+++ b/Project/Bus.h
@@ -25,10 +25,10 @@ struct BusElectricalData {
int number = 0;
wxString name = "";
double nominalVoltage = 138.0;
- ElectricalUnit nominalVoltageUnit = UNIT_kV;
+ ElectricalUnit nominalVoltageUnit = ElectricalUnit::UNIT_kV;
bool isVoltageControlled = false;
double controlledVoltage = 1.0;
- int controlledVoltageUnitChoice = 0; // 0 = p.u., 1 = same as nominalVoltageUnit (UNIT_V or UNIT_kV).
+ int controlledVoltageUnitChoice = 0; // 0 = p.u., 1 = same as nominalVoltageUnit (ElectricalUnit::UNIT_V or ElectricalUnit::UNIT_kV).
bool slackBus = false;
// Power flow (p.u.)
@@ -38,8 +38,8 @@ struct BusElectricalData {
// Fault
bool hasFault = false;
- FaultData faultType = FAULT_THREEPHASE;
- FaultData faultLocation = FAULT_LINE_A;
+ FaultData faultType = FaultData::FAULT_THREEPHASE;
+ FaultData faultLocation = FaultData::FAULT_LINE_A;
// p.u. fault data
double faultResistance = 0.0;
double faultReactance = 0.0;
@@ -96,7 +96,7 @@ class Bus : public PowerElement
virtual BusElectricalData GetElectricalData() const { return m_electricalData; }
virtual void SetElectricalData(const BusElectricalData& electricalData) { m_electricalData = electricalData; }
virtual bool ShowForm(wxWindow* parent, Element* element);
- virtual bool GetPlotData(ElementPlotData& plotData, PlotStudy study = STABILITY);
+ virtual bool GetPlotData(ElementPlotData& plotData, PlotStudy study = PlotStudy::STABILITY);
virtual rapidxml::xml_node<>* SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode);
virtual bool OpenElement(rapidxml::xml_node<>* elementNode);
diff --git a/Project/Capacitor.cpp b/Project/Capacitor.cpp
index f7ae32a..e77c2e7 100644
--- a/Project/Capacitor.cpp
+++ b/Project/Capacitor.cpp
@@ -232,17 +232,17 @@ CapacitorElectricalData Capacitor::GetPUElectricalData(double systemPowerBase)
{
CapacitorElectricalData data = m_electricalData;
switch(data.reactivePowerUnit) {
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
data.reactivePower = data.reactivePower / systemPowerBase;
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
default:
break;
@@ -273,16 +273,16 @@ wxString Capacitor::GetTipText() const
tipText += "\n";
tipText += _("\nQ = ") + wxString::FromDouble(reactivePower, 5);
switch(m_electricalData.reactivePowerUnit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
tipText += _(" p.u.");
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
tipText += _(" VAr");
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
tipText += _(" kVAr");
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
tipText += _(" MVAr");
} break;
default:
@@ -306,7 +306,7 @@ rapidxml::xml_node<>* Capacitor::SaveElement(rapidxml::xml_document<>& doc, rapi
XMLParser::SetNodeValue(doc, name, m_electricalData.name);
auto reactivePower = XMLParser::AppendNode(doc, electricalProp, "ReactivePower");
XMLParser::SetNodeValue(doc, reactivePower, m_electricalData.reactivePower);
- XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", m_electricalData.reactivePowerUnit);
+ XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", static_cast<int>(m_electricalData.reactivePowerUnit));
SaveSwitchingData(doc, electricalProp);
diff --git a/Project/Capacitor.h b/Project/Capacitor.h
index c98070d..ad4613f 100644
--- a/Project/Capacitor.h
+++ b/Project/Capacitor.h
@@ -25,7 +25,7 @@ class ReactiveShuntElementForm;
struct CapacitorElectricalData {
wxString name;
double reactivePower = 100.0;
- ElectricalUnit reactivePowerUnit = ElectricalUnit::UNIT_MVAr;
+ ElectricalUnit reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
};
/**
diff --git a/Project/ChartView.cpp b/Project/ChartView.cpp
index 03b57b9..94e3c9d 100644
--- a/Project/ChartView.cpp
+++ b/Project/ChartView.cpp
@@ -100,26 +100,26 @@ void ChartView::SetTreectrl()
m_treeTimeID = m_treeCtrl->AppendItem(rootID, _("Time"));
m_treeCtrl->SetItemTextColour(m_treeTimeID, *wxRED);
- bool firstElement[ElementPlotData::NUM_ELEMENTS];
- for(int i = 0; i < ElementPlotData::NUM_ELEMENTS; ++i) firstElement[i] = true;
-
- wxString rootElementName[ElementPlotData::NUM_ELEMENTS];
- rootElementName[ElementPlotData::CT_BUS] = _("Bus");
- rootElementName[ElementPlotData::CT_IND_MOTOR] = _("Induction motor");
- rootElementName[ElementPlotData::CT_LINE] = _("Line");
- rootElementName[ElementPlotData::CT_LOAD] = _("Load");
- rootElementName[ElementPlotData::CT_SHUNT_CAPACITOR] = _("Capacitor");
- rootElementName[ElementPlotData::CT_SHUNT_INDUCTOR] = _("Inductor");
- rootElementName[ElementPlotData::CT_SYNC_COMPENSATOR] = _("Synchronous compensator");
- rootElementName[ElementPlotData::CT_SYNC_GENERATOR] = _("Synchronous generator");
- rootElementName[ElementPlotData::CT_TRANSFORMER] = _("Transformer");
- rootElementName[ElementPlotData::CT_TEST] = _("Test");
-
- wxTreeItemId rootItemID[ElementPlotData::NUM_ELEMENTS];
+ bool firstElement[static_cast<unsigned int>(ElementPlotData::CurveType::NUM_ELEMENTS)];
+ for(int i = 0; i < static_cast<unsigned int>(ElementPlotData::CurveType::NUM_ELEMENTS); ++i) firstElement[i] = true;
+
+ wxString rootElementName[static_cast<unsigned int>(ElementPlotData::CurveType::NUM_ELEMENTS)];
+ rootElementName[static_cast<unsigned int>(ElementPlotData::CurveType::CT_BUS)] = _("Bus");
+ rootElementName[static_cast<unsigned int>(ElementPlotData::CurveType::CT_IND_MOTOR)] = _("Induction motor");
+ rootElementName[static_cast<unsigned int>(ElementPlotData::CurveType::CT_LINE)] = _("Line");
+ rootElementName[static_cast<unsigned int>(ElementPlotData::CurveType::CT_LOAD)] = _("Load");
+ rootElementName[static_cast<unsigned int>(ElementPlotData::CurveType::CT_SHUNT_CAPACITOR)] = _("Capacitor");
+ rootElementName[static_cast<unsigned int>(ElementPlotData::CurveType::CT_SHUNT_INDUCTOR)] = _("Inductor");
+ rootElementName[static_cast<unsigned int>(ElementPlotData::CurveType::CT_SYNC_COMPENSATOR)] = _("Synchronous compensator");
+ rootElementName[static_cast<unsigned int>(ElementPlotData::CurveType::CT_SYNC_GENERATOR)] = _("Synchronous generator");
+ rootElementName[static_cast<unsigned int>(ElementPlotData::CurveType::CT_TRANSFORMER)] = _("Transformer");
+ rootElementName[static_cast<unsigned int>(ElementPlotData::CurveType::CT_TEST)] = _("Test");
+
+ wxTreeItemId rootItemID[static_cast<unsigned int>(ElementPlotData::CurveType::NUM_ELEMENTS)];
for(auto it = m_epdList.begin(), itEnd = m_epdList.end(); it != itEnd; ++it) {
ElementPlotData data = *it;
- ElementPlotData::CurveType curveType = data.GetCurveType();
+ unsigned int curveType = static_cast<unsigned int>(data.GetCurveType());
if(firstElement[curveType]) {
rootItemID[curveType] = m_treeCtrl->AppendItem(rootID, rootElementName[curveType]);
diff --git a/Project/ConnectionLine.cpp b/Project/ConnectionLine.cpp
index 1a858a4..4ce7df8 100644
--- a/Project/ConnectionLine.cpp
+++ b/Project/ConnectionLine.cpp
@@ -42,7 +42,7 @@ void ConnectionLine::Draw(wxPoint2DDouble translation, double scale) const
glColor4d(0.0, 0.0, 0.0, 1.0);
DrawLine(m_pointList);
- if(m_type == ELEMENT_LINE) {
+ if(m_type == ConnectionLineType::ELEMENT_LINE) {
glColor4d(0.0, 0.0, 0.0, 1.0);
DrawCircle(m_pointList[5], 3, 10, GL_POLYGON);
}
@@ -64,7 +64,7 @@ bool ConnectionLine::Intersects(wxRect2DDouble rect) const
void ConnectionLine::UpdatePoints()
{
- if(m_type == ELEMENT_ELEMENT) {
+ if(m_type == ConnectionLineType::ELEMENT_ELEMENT) {
bool hasOneNode = true;
wxPoint2DDouble pt1 = m_nodeList[0]->GetPosition();
wxPoint2DDouble pt2;
@@ -103,7 +103,7 @@ void ConnectionLine::UpdatePoints()
}
m_pointList[3] = m_pointList[4] + wxPoint2DDouble(0.0, midPt.m_y - m_pointList[4].m_y);
- } else if(m_type == ELEMENT_LINE) {
+ } else if(m_type == ConnectionLineType::ELEMENT_LINE) {
wxPoint2DDouble pt1 = m_nodeList[0]->GetPosition();
wxPoint2DDouble pt2 = m_parentLine->GetMidPoint();
wxPoint2DDouble midPt = (pt1 + pt2) / 2.0 + wxPoint2DDouble(0.0, m_lineOffset);
@@ -169,7 +169,7 @@ bool ConnectionLine::SetParentLine(ConnectionLine* parent)
if(m_nodeList[0]->GetNodeType() != Node::NodeType::NODE_IN) return false;
if(!parent) return false;
- m_type = ELEMENT_LINE;
+ m_type = ConnectionLineType::ELEMENT_LINE;
m_parentLine = parent;
return true;
}
diff --git a/Project/ConnectionLine.h b/Project/ConnectionLine.h
index 92154d2..cd52801 100644
--- a/Project/ConnectionLine.h
+++ b/Project/ConnectionLine.h
@@ -30,7 +30,7 @@
class ConnectionLine : public ControlElement
{
public:
- enum ConnectionLineType { ELEMENT_ELEMENT = 0, ELEMENT_LINE };
+ enum class ConnectionLineType : int { ELEMENT_ELEMENT = 0, ELEMENT_LINE };
ConnectionLine();
ConnectionLine(Node* firstNode, int id);
~ConnectionLine();
@@ -48,7 +48,7 @@ class ConnectionLine : public ControlElement
virtual wxPoint2DDouble GetMidPoint() const;
virtual double GetOffset() const { return m_lineOffset; }
virtual void SetOffset(double offset) { m_lineOffset = offset; }
- virtual ConnectionLineType GetType() const { return m_type; }
+ virtual ConnectionLine::ConnectionLineType GetType() const { return m_type; }
virtual void SetType(ConnectionLineType newType) { m_type = newType; }
virtual ConnectionLine* GetParentLine() const { return m_parentLine; }
virtual bool SetParentLine(ConnectionLine* parent);
@@ -65,7 +65,7 @@ class ConnectionLine : public ControlElement
double m_moveStartOffset = 0.0;
wxPoint2DDouble m_tmpSndPt;
- ConnectionLineType m_type = ELEMENT_ELEMENT;
+ ConnectionLineType m_type = ConnectionLineType::ELEMENT_ELEMENT;
ConnectionLine* m_parentLine = NULL;
double m_value;
diff --git a/Project/ControlEditor.cpp b/Project/ControlEditor.cpp
index 709fb25..b74fcea 100644
--- a/Project/ControlEditor.cpp
+++ b/Project/ControlEditor.cpp
@@ -157,73 +157,78 @@ void ControlEditor::BuildControlElementPanel()
ControlElementButton* ioButton = new ControlElementButton(
m_panelControlElements, _("In/Out"),
- wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\io.png", wxPATH_WIN).GetPath()), ID_IO);
+ wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\io.png", wxPATH_WIN).GetPath()),
+ static_cast<int>(ControlElementButtonID::ID_IO));
wrapSizer->Add(ioButton, 0, wxALL, 5);
ioButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this);
ControlElementButton* tfButton = new ControlElementButton(
m_panelControlElements, _("Transfer fcn"),
wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\transferFunc.png", wxPATH_WIN).GetPath()),
- ID_TF);
+ static_cast<int>(ControlElementButtonID::ID_TF));
wrapSizer->Add(tfButton, 0, wxALL, 5);
tfButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this);
ControlElementButton* sumButton = new ControlElementButton(
m_panelControlElements, _("Sum"),
- wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\sum.png", wxPATH_WIN).GetPath()), ID_SUM);
+ wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\sum.png", wxPATH_WIN).GetPath()),
+ static_cast<int>(ControlElementButtonID::ID_SUM));
wrapSizer->Add(sumButton, 0, wxALL, 5);
sumButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this);
ControlElementButton* constButton = new ControlElementButton(
m_panelControlElements, _("Constant"),
wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\value.png", wxPATH_WIN).GetPath()),
- ID_CONST);
+ static_cast<int>(ControlElementButtonID::ID_CONST));
wrapSizer->Add(constButton, 0, wxALL, 5);
constButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this);
ControlElementButton* gainButton = new ControlElementButton(
m_panelControlElements, _("Gain"),
- wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\gain.png", wxPATH_WIN).GetPath()), ID_GAIN);
+ wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\gain.png", wxPATH_WIN).GetPath()),
+ static_cast<int>(ControlElementButtonID::ID_GAIN));
wrapSizer->Add(gainButton, 0, wxALL, 5);
gainButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this);
ControlElementButton* limButton = new ControlElementButton(
m_panelControlElements, _("Limiter"),
wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\limiter.png", wxPATH_WIN).GetPath()),
- ID_LIMITER);
+ static_cast<int>(ControlElementButtonID::ID_LIMITER));
wrapSizer->Add(limButton, 0, wxALL, 5);
limButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this);
ControlElementButton* rateLimButton = new ControlElementButton(
m_panelControlElements, _("Rate limiter"),
wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\rateLimiter.png", wxPATH_WIN).GetPath()),
- ID_RATELIM);
+ static_cast<int>(ControlElementButtonID::ID_RATELIM));
wrapSizer->Add(rateLimButton, 0, wxALL, 5);
rateLimButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this);
ControlElementButton* multButton = new ControlElementButton(
m_panelControlElements, _("Multiplier"),
- wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\mult.png", wxPATH_WIN).GetPath()), ID_MULT);
+ wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\mult.png", wxPATH_WIN).GetPath()),
+ static_cast<int>(ControlElementButtonID::ID_MULT));
wrapSizer->Add(multButton, 0, wxALL, 5);
multButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this);
ControlElementButton* divButton = new ControlElementButton(
m_panelControlElements, _("Divider"),
wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\div.png", wxPATH_WIN).GetPath()),
- ID_MATH_DIV);
+ static_cast<int>(ControlElementButtonID::ID_MATH_DIV));
wrapSizer->Add(divButton, 0, wxALL, 5);
divButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this);
ControlElementButton* mathExprButton = new ControlElementButton(
m_panelControlElements, _("Math Expression"),
wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\mathExpr.png", wxPATH_WIN).GetPath()),
- ID_MATH_EXPR);
+ static_cast<int>(ControlElementButtonID::ID_MATH_EXPR));
wrapSizer->Add(mathExprButton, 0, wxALL, 5);
mathExprButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this);
ControlElementButton* satButton = new ControlElementButton(
m_panelControlElements, _("Exponential"),
- wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\sat.png", wxPATH_WIN).GetPath()), ID_EXP);
+ wxImage(exePath + wxFileName::DirName("\\..\\data\\images\\control\\sat.png", wxPATH_WIN).GetPath()),
+ static_cast<int>(ControlElementButtonID::ID_EXP));
wrapSizer->Add(satButton, 0, wxALL, 5);
satButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this);
}
@@ -245,8 +250,8 @@ void ControlEditor::SetViewport()
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_LINE_SMOOTH);
- double width = m_glCanvas->GetSize().x - 1;
- double height = m_glCanvas->GetSize().y - 1;
+ double width = static_cast<double>(m_glCanvas->GetSize().x) - 1;
+ double height = static_cast<double>(m_glCanvas->GetSize().y) - 1;
// Viewport fit the screen.
glViewport(0, 0, width, height);
@@ -262,58 +267,58 @@ void ControlEditor::SetViewport()
void ControlEditor::AddElement(ControlElementButtonID id)
{
switch(id) {
- case ID_IO: {
- m_mode = MODE_INSERT;
+ case ControlElementButtonID::ID_IO: {
+ m_mode = ControlEditorMode::MODE_INSERT;
IOControl* io = new IOControl(m_ioFlags, GetNextID());
m_elementList.push_back(io);
} break;
- case ID_TF: {
- m_mode = MODE_INSERT;
+ case ControlElementButtonID::ID_TF: {
+ m_mode = ControlEditorMode::MODE_INSERT;
TransferFunction* tf = new TransferFunction(GetNextID());
m_elementList.push_back(tf);
} break;
- case ID_SUM: {
- m_mode = MODE_INSERT;
+ case ControlElementButtonID::ID_SUM: {
+ m_mode = ControlEditorMode::MODE_INSERT;
Sum* sum = new Sum(GetNextID());
m_elementList.push_back(sum);
} break;
- case ID_CONST: {
- m_mode = MODE_INSERT;
+ case ControlElementButtonID::ID_CONST: {
+ m_mode = ControlEditorMode::MODE_INSERT;
Constant* constant = new Constant(GetNextID());
m_elementList.push_back(constant);
} break;
- case ID_LIMITER: {
- m_mode = MODE_INSERT;
+ case ControlElementButtonID::ID_LIMITER: {
+ m_mode = ControlEditorMode::MODE_INSERT;
Limiter* limiter = new Limiter(GetNextID());
m_elementList.push_back(limiter);
} break;
- case ID_GAIN: {
- m_mode = MODE_INSERT;
+ case ControlElementButtonID::ID_GAIN: {
+ m_mode = ControlEditorMode::MODE_INSERT;
Gain* gain = new Gain(GetNextID());
m_elementList.push_back(gain);
} break;
- case ID_MULT: {
- m_mode = MODE_INSERT;
+ case ControlElementButtonID::ID_MULT: {
+ m_mode = ControlEditorMode::MODE_INSERT;
Multiplier* mult = new Multiplier(GetNextID());
m_elementList.push_back(mult);
} break;
- case ID_EXP: {
- m_mode = MODE_INSERT;
+ case ControlElementButtonID::ID_EXP: {
+ m_mode = ControlEditorMode::MODE_INSERT;
Exponential* exp = new Exponential(GetNextID());
m_elementList.push_back(exp);
} break;
- case ID_RATELIM: {
- m_mode = MODE_INSERT;
+ case ControlElementButtonID::ID_RATELIM: {
+ m_mode = ControlEditorMode::MODE_INSERT;
RateLimiter* rateLim = new RateLimiter(GetNextID());
m_elementList.push_back(rateLim);
} break;
- case ID_MATH_DIV: {
- m_mode = MODE_INSERT;
+ case ControlElementButtonID::ID_MATH_DIV: {
+ m_mode = ControlEditorMode::MODE_INSERT;
Divider* divider = new Divider(GetNextID());
m_elementList.push_back(divider);
} break;
- case ID_MATH_EXPR: {
- m_mode = MODE_INSERT;
+ case ControlElementButtonID::ID_MATH_EXPR: {
+ m_mode = ControlEditorMode::MODE_INSERT;
MathExpression* mathExpr = new MathExpression(GetNextID());
m_elementList.push_back(mathExpr);
} break;
@@ -367,7 +372,7 @@ void ControlEditor::OnDoubleClick(wxMouseEvent& event)
wxPoint2DDouble clickPoint = event.GetPosition();
bool redraw = false;
- if(m_mode == MODE_EDIT) {
+ if(m_mode == ControlEditor::ControlEditorMode::MODE_EDIT) {
for(auto it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {
Element* element = *it;
if(element->Contains(m_camera->ScreenToWorld(clickPoint))) {
@@ -391,8 +396,8 @@ void ControlEditor::OnLeftClickDown(wxMouseEvent& event)
wxPoint2DDouble clickPoint = event.GetPosition();
bool foundElement = false;
- if(m_mode == MODE_INSERT) {
- m_mode = MODE_EDIT;
+ if(m_mode == ControlEditorMode::MODE_INSERT) {
+ m_mode = ControlEditor::ControlEditorMode::MODE_EDIT;
} else {
for(auto it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {
ControlElement* element = *it;
@@ -401,7 +406,7 @@ void ControlEditor::OnLeftClickDown(wxMouseEvent& event)
for(auto itN = nodeList.begin(), itNEnd = nodeList.end(); itN != itNEnd; ++itN) {
Node* node = *itN;
if(node->Contains(m_camera->ScreenToWorld(clickPoint))) {
- m_mode = MODE_INSERT_LINE;
+ m_mode = ControlEditorMode::MODE_INSERT_LINE;
ConnectionLine* line = new ConnectionLine(node, GetNextID());
m_connectionList.push_back(line);
element->AddChild(line);
@@ -421,25 +426,25 @@ void ControlEditor::OnLeftClickDown(wxMouseEvent& event)
element->SetSelected();
foundElement = true;
}
- m_mode = MODE_MOVE_ELEMENT;
+ m_mode = ControlEditor::ControlEditorMode::MODE_MOVE_ELEMENT;
}
}
}
- if(m_mode != MODE_INSERT_LINE) {
+ if(m_mode != ControlEditorMode::MODE_INSERT_LINE) {
for(auto it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; ++it) {
ConnectionLine* line = *it;
line->StartMove(m_camera->ScreenToWorld(clickPoint));
if(line->Contains(m_camera->ScreenToWorld(clickPoint))) {
line->SetSelected();
foundElement = true;
- m_mode = MODE_MOVE_LINE;
+ m_mode = ControlEditorMode::MODE_MOVE_LINE;
}
}
}
}
if(!foundElement) {
- m_mode = MODE_SELECTION_RECT;
+ m_mode = ControlEditorMode::MODE_SELECTION_RECT;
m_startSelRect = m_camera->ScreenToWorld(clickPoint);
}
@@ -452,7 +457,7 @@ void ControlEditor::OnLeftClickUp(wxMouseEvent& event)
bool foundNode = false;
for(auto it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; it++) {
ControlElement* element = *it;
- if(m_mode == MODE_INSERT_LINE) {
+ if(m_mode == ControlEditorMode::MODE_INSERT_LINE) {
auto nodeList = element->GetNodeList();
for(auto itN = nodeList.begin(), itNEnd = nodeList.end(); itN != itNEnd; ++itN) {
Node* node = *itN;
@@ -462,12 +467,12 @@ void ControlEditor::OnLeftClickUp(wxMouseEvent& event)
line->AddParent(element);
element->AddChild(line);
line->UpdatePoints();
- m_mode = MODE_EDIT;
+ m_mode = ControlEditor::ControlEditorMode::MODE_EDIT;
foundNode = true;
}
}
}
- } else if(m_mode == MODE_SELECTION_RECT) {
+ } else if(m_mode == ControlEditorMode::MODE_SELECTION_RECT) {
if(element->Intersects(m_selectionRect)) {
element->SetSelected();
} else if(!event.ControlDown()) {
@@ -479,17 +484,17 @@ void ControlEditor::OnLeftClickUp(wxMouseEvent& event)
}
for(auto it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; ++it) {
ConnectionLine* cLine = *it;
- if(m_mode == MODE_INSERT_LINE && !foundNode && it != (itEnd - 1)) {
+ if(m_mode == ControlEditorMode::MODE_INSERT_LINE && !foundNode && it != (itEnd - 1)) {
if(cLine->Contains(m_camera->ScreenToWorld(event.GetPosition()))) {
ConnectionLine* iLine = *(m_connectionList.end() - 1);
if(iLine->SetParentLine(cLine)) {
cLine->AddChild(iLine);
iLine->UpdatePoints();
- m_mode = MODE_EDIT;
+ m_mode = ControlEditor::ControlEditorMode::MODE_EDIT;
foundNode = true;
}
}
- } else if(m_mode == MODE_SELECTION_RECT) {
+ } else if(m_mode == ControlEditorMode::MODE_SELECTION_RECT) {
if(cLine->Intersects(m_selectionRect)) {
cLine->SetSelected();
} else if(!event.ControlDown()) {
@@ -502,7 +507,7 @@ void ControlEditor::OnLeftClickUp(wxMouseEvent& event)
m_selectionRect = wxRect2DDouble(0, 0, 0, 0);
- if(m_mode == MODE_INSERT_LINE && !foundNode) {
+ if(m_mode == ControlEditorMode::MODE_INSERT_LINE && !foundNode) {
ConnectionLine* cLine = *(m_connectionList.end() - 1);
// Free nodes
auto nodeList = cLine->GetNodeList();
@@ -518,9 +523,9 @@ void ControlEditor::OnLeftClickUp(wxMouseEvent& event)
}
m_connectionList.pop_back();
if(cLine) delete cLine;
- m_mode = MODE_EDIT;
- } else if(m_mode != MODE_INSERT) {
- m_mode = MODE_EDIT;
+ m_mode = ControlEditor::ControlEditorMode::MODE_EDIT;
+ } else if(m_mode != ControlEditorMode::MODE_INSERT) {
+ m_mode = ControlEditor::ControlEditorMode::MODE_EDIT;
}
Redraw();
@@ -531,14 +536,14 @@ void ControlEditor::OnMiddleDown(wxMouseEvent& event)
{
// Set to drag mode.
switch(m_mode) {
- case MODE_INSERT: {
- m_mode = MODE_DRAG_INSERT;
+ case ControlEditorMode::MODE_INSERT: {
+ m_mode = ControlEditorMode::MODE_DRAG_INSERT;
} break;
- case MODE_PASTE: {
- m_mode = MODE_DRAG_PASTE;
+ case ControlEditorMode::MODE_PASTE: {
+ m_mode = ControlEditorMode::MODE_DRAG_PASTE;
} break;
default: {
- m_mode = MODE_DRAG;
+ m_mode = ControlEditorMode::MODE_DRAG;
} break;
}
m_camera->StartTranslation(m_camera->ScreenToWorld(event.GetPosition()));
@@ -547,18 +552,18 @@ void ControlEditor::OnMiddleDown(wxMouseEvent& event)
void ControlEditor::OnMiddleUp(wxMouseEvent& event)
{
switch(m_mode) {
- case MODE_DRAG_INSERT: {
- m_mode = MODE_INSERT;
+ case ControlEditorMode::MODE_DRAG_INSERT: {
+ m_mode = ControlEditorMode::MODE_INSERT;
} break;
- case MODE_DRAG_PASTE: {
- m_mode = MODE_PASTE;
+ case ControlEditorMode::MODE_DRAG_PASTE: {
+ m_mode = ControlEditorMode::MODE_PASTE;
} break;
- case MODE_INSERT:
- case MODE_PASTE: {
+ case ControlEditorMode::MODE_INSERT:
+ case ControlEditorMode::MODE_PASTE: {
// Does nothing.
} break;
default: {
- m_mode = MODE_EDIT;
+ m_mode = ControlEditor::ControlEditorMode::MODE_EDIT;
} break;
}
}
@@ -569,24 +574,24 @@ void ControlEditor::OnMouseMotion(wxMouseEvent& event)
bool redraw = false;
switch(m_mode) {
- case MODE_INSERT: {
+ case ControlEditorMode::MODE_INSERT: {
Element* newElement = *(m_elementList.end() - 1); // Get the last element in the list.
newElement->Move(m_camera->ScreenToWorld(clickPoint));
redraw = true;
} break;
- case MODE_INSERT_LINE: {
+ case ControlEditorMode::MODE_INSERT_LINE: {
ConnectionLine* line = *(m_connectionList.end() - 1);
line->SetTemporarySecondPoint(m_camera->ScreenToWorld(clickPoint));
line->UpdatePoints();
redraw = true;
} break;
- case MODE_DRAG:
- case MODE_DRAG_INSERT:
- case MODE_DRAG_PASTE: {
+ case ControlEditorMode::MODE_DRAG:
+ case ControlEditorMode::MODE_DRAG_INSERT:
+ case ControlEditorMode::MODE_DRAG_PASTE: {
m_camera->SetTranslation(clickPoint);
redraw = true;
} break;
- case MODE_MOVE_ELEMENT: {
+ case ControlEditor::ControlEditorMode::MODE_MOVE_ELEMENT: {
for(auto it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; it++) {
Element* element = *it;
if(element->IsSelected()) {
@@ -600,7 +605,7 @@ void ControlEditor::OnMouseMotion(wxMouseEvent& event)
}
}
} break;
- case MODE_MOVE_LINE: {
+ case ControlEditorMode::MODE_MOVE_LINE: {
for(auto it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; it++) {
ConnectionLine* line = *it;
if(line->IsSelected()) {
@@ -609,7 +614,7 @@ void ControlEditor::OnMouseMotion(wxMouseEvent& event)
}
}
} break;
- case MODE_SELECTION_RECT: {
+ case ControlEditorMode::MODE_SELECTION_RECT: {
wxPoint2DDouble currentPos = m_camera->ScreenToWorld(clickPoint);
double x, y, w, h;
if(currentPos.m_x < m_startSelRect.m_x) {
@@ -762,7 +767,7 @@ void ControlEditor::CheckConnections()
{
for(auto it = m_connectionList.begin(); it != m_connectionList.end(); ++it) {
ConnectionLine* cLine = *it;
- if(cLine->GetType() == ConnectionLine::ELEMENT_ELEMENT) {
+ if(cLine->GetType() == ConnectionLine::ConnectionLineType::ELEMENT_ELEMENT) {
if(cLine->GetParentList().size() < 2) { it = DeleteLineFromList(it); }
} else if(cLine->GetParentList().size() < 1) {
it = DeleteLineFromList(it);
@@ -872,7 +877,7 @@ void ControlEditor::OnTestClick(wxCommandEvent& event)
}
if(!simStopped) {
std::vector<ElementPlotData> epdList;
- ElementPlotData curveData(_("I/O"), ElementPlotData::CT_TEST);
+ ElementPlotData curveData(_("I/O"), ElementPlotData::CurveType::CT_TEST);
curveData.AddData(inputV, _("Input"));
curveData.AddData(solution, _("Output"));
diff --git a/Project/ControlEditor.h b/Project/ControlEditor.h
index c68829d..fbd8f79 100644
--- a/Project/ControlEditor.h
+++ b/Project/ControlEditor.h
@@ -57,7 +57,7 @@ class ControlElementContainer;
class ChartView;
class ElementDataObject;
-enum ControlElementButtonID {
+enum class ControlElementButtonID : int {
ID_IO = 0,
ID_TF,
ID_SUM,
@@ -109,7 +109,7 @@ class ControlElementButton : public wxWindow
class ControlEditor : public ControlEditorBase
{
public:
- enum ControlEditorMode {
+ enum class ControlEditorMode : int {
MODE_EDIT = 0,
MODE_MOVE_ELEMENT,
MODE_MOVE_LINE,
@@ -165,7 +165,7 @@ class ControlEditor : public ControlEditorBase
wxGLContext* m_glContext = NULL;
Camera* m_camera = NULL;
- ControlEditorMode m_mode = MODE_EDIT;
+ ControlEditorMode m_mode = ControlEditorMode::MODE_EDIT;
wxRect2DDouble m_selectionRect;
wxPoint2DDouble m_startSelRect;
diff --git a/Project/ControlElementSolver.cpp b/Project/ControlElementSolver.cpp
index 037da84..31c18e9 100644
--- a/Project/ControlElementSolver.cpp
+++ b/Project/ControlElementSolver.cpp
@@ -344,7 +344,7 @@ ConnectionLine* ControlElementSolver::SolveNextElement(ConnectionLine* currentLi
Node* childNode = *itCN;
if(childNode == outNode) {
// Check if the line connect two elements, otherwise return NULL
- if(cLine->GetType() != ConnectionLine::ELEMENT_ELEMENT) return NULL;
+ if(cLine->GetType() != ConnectionLine::ConnectionLineType::ELEMENT_ELEMENT) return NULL;
// Set the connection line value and return it.
cLine->SetValue(element->GetOutput());
diff --git a/Project/ControlElementSolver.h b/Project/ControlElementSolver.h
index f24f740..db08c33 100644
--- a/Project/ControlElementSolver.h
+++ b/Project/ControlElementSolver.h
@@ -79,8 +79,8 @@ class ControlElementSolver
ConnectionLine* SolveNextElement(ConnectionLine* currentLine);
ControlElementContainer* m_ctrlContainer = NULL;
- double m_timeStep;
- double m_integrationError;
+ double m_timeStep = 1e-3;
+ double m_integrationError = 1e-5;
std::vector<double> m_solutions;
bool m_isOK = false;
wxString m_failMessage = _("Unknown error.");
diff --git a/Project/ElectricCalculation.cpp b/Project/ElectricCalculation.cpp
index 24c92ba..8ad177c 100644
--- a/Project/ElectricCalculation.cpp
+++ b/Project/ElectricCalculation.cpp
@@ -408,10 +408,10 @@ void ElectricCalculation::UpdateElementsPowerFlow(std::vector<std::complex<doubl
case ElectricalUnit::UNIT_PU: {
reactivePower /= systemPowerBase;
} break;
- case ElectricalUnit::UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
reactivePower /= 1e3;
} break;
- case ElectricalUnit::UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
reactivePower /= 1e6;
} break;
default:
@@ -519,10 +519,10 @@ void ElectricCalculation::UpdateElementsPowerFlow(std::vector<std::complex<doubl
case ElectricalUnit::UNIT_PU: {
reactivePower /= systemPowerBase;
} break;
- case ElectricalUnit::UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
reactivePower /= 1e3;
} break;
- case ElectricalUnit::UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
reactivePower /= 1e6;
} break;
default:
@@ -588,10 +588,10 @@ void ElectricCalculation::UpdateElementsPowerFlow(std::vector<std::complex<doubl
case ElectricalUnit::UNIT_PU: {
reactivePower /= systemPowerBase;
} break;
- case ElectricalUnit::UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
reactivePower /= 1e3;
} break;
- case ElectricalUnit::UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
reactivePower /= 1e6;
} break;
default:
diff --git a/Project/ElementPlotData.h b/Project/ElementPlotData.h
index 16c6017..c84f7c5 100644
--- a/Project/ElementPlotData.h
+++ b/Project/ElementPlotData.h
@@ -64,7 +64,7 @@ class PlotData : public wxTreeItemData
class ElementPlotData
{
public:
- enum CurveType {
+ enum class CurveType : int {
CT_BUS = 0,
CT_SYNC_GENERATOR,
CT_SYNC_COMPENSATOR,
diff --git a/Project/FileHanding.cpp b/Project/FileHanding.cpp
index b8e39ce..44acf7b 100644
--- a/Project/FileHanding.cpp
+++ b/Project/FileHanding.cpp
@@ -54,7 +54,7 @@ void FileHanding::SaveProject(wxFileName path)
auto generalPropNode = XMLParser::AppendNode(doc, simulationPropNode, "General");
auto basePower = XMLParser::AppendNode(doc, generalPropNode, "BasePower");
XMLParser::SetNodeValue(doc, basePower, simulationData.basePower);
- XMLParser::SetNodeAttribute(doc, basePower, "UnitID", simulationData.basePowerUnit);
+ XMLParser::SetNodeAttribute(doc, basePower, "UnitID", static_cast<int>(simulationData.basePowerUnit));
auto contCalc = XMLParser::AppendNode(doc, generalPropNode, "ContinuousCalculation");
auto contCalcFault = XMLParser::AppendNode(doc, contCalc, "Fault");
XMLParser::SetNodeValue(doc, contCalcFault, simulationData.faultAfterPowerFlow);
diff --git a/Project/HarmCurrent.cpp b/Project/HarmCurrent.cpp
index c9266ec..ad86d78 100644
--- a/Project/HarmCurrent.cpp
+++ b/Project/HarmCurrent.cpp
@@ -155,7 +155,7 @@ wxString HarmCurrent::GetTipText() const
tipText +=
wxString::Format("\nI%dh = %s %s (%s%s)", m_electricalData.harmonicOrder[i],
StringFromDouble(m_electricalData.injHarmCurrent[i]),
- m_electricalData.injHarmCurrentUnit[i] == UNIT_A ? "A" : "p.u.",
+ m_electricalData.injHarmCurrentUnit[i] == ElectricalUnit::UNIT_A ? "A" : "p.u.",
StringFromDouble(m_electricalData.injHarmAngle[i]), static_cast<wxString>(L'\u00B0'));
}
@@ -179,9 +179,9 @@ HarmCurrentElectricalData HarmCurrent::GetPUElectricalData(double systemPowerBas
HarmCurrentElectricalData puData = m_electricalData;
double ib = systemPowerBase / (std::sqrt(3.00) * voltage);
for(unsigned int i = 0; i < puData.harmonicOrder.size(); ++i) {
- if(puData.injHarmCurrentUnit[i] == UNIT_A) {
+ if(puData.injHarmCurrentUnit[i] == ElectricalUnit::UNIT_A) {
puData.injHarmCurrent[i] /= ib;
- puData.injHarmCurrentUnit[i] = UNIT_PU;
+ puData.injHarmCurrentUnit[i] = ElectricalUnit::UNIT_PU;
}
}
return puData;
@@ -208,7 +208,7 @@ rapidxml::xml_node<>* HarmCurrent::SaveElement(rapidxml::xml_document<>& doc, ra
XMLParser::SetNodeValue(doc, order, m_electricalData.harmonicOrder[i]);
auto injCurrent = XMLParser::AppendNode(doc, harmCurrentData, "InjCurrent");
XMLParser::SetNodeValue(doc, injCurrent, m_electricalData.injHarmCurrent[i]);
- XMLParser::SetNodeAttribute(doc, injCurrent, "UnitID", m_electricalData.injHarmCurrentUnit[i]);
+ XMLParser::SetNodeAttribute(doc, injCurrent, "UnitID", static_cast<int>(m_electricalData.injHarmCurrentUnit[i]));
auto injHarmAngle = XMLParser::AppendNode(doc, harmCurrentData, "Angle");
XMLParser::SetNodeValue(doc, injHarmAngle, m_electricalData.injHarmAngle[i]);
}
diff --git a/Project/IndMotor.cpp b/Project/IndMotor.cpp
index 621eb5e..a209f8c 100644
--- a/Project/IndMotor.cpp
+++ b/Project/IndMotor.cpp
@@ -66,33 +66,33 @@ IndMotorElectricalData IndMotor::GetPUElectricalData(double systemPowerBase)
IndMotorElectricalData data = m_electricalData;
switch(data.activePowerUnit) {
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
data.activePower = data.activePower / systemPowerBase;
- data.activePowerUnit = UNIT_PU;
+ data.activePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
data.activePower = (data.activePower * 1e3) / systemPowerBase;
- data.activePowerUnit = UNIT_PU;
+ data.activePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
data.activePower = (data.activePower * 1e6) / systemPowerBase;
- data.activePowerUnit = UNIT_PU;
+ data.activePowerUnit = ElectricalUnit::UNIT_PU;
} break;
default:
break;
}
switch(data.reactivePowerUnit) {
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
data.reactivePower = data.reactivePower / systemPowerBase;
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
default:
break;
@@ -116,16 +116,16 @@ wxString IndMotor::GetTipText() const
if(!m_online) activePower = 0.0;
tipText += _("\nP = ") + wxString::FromDouble(activePower, 5);
switch(m_electricalData.activePowerUnit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
tipText += _(" p.u.");
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
tipText += _(" W");
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
tipText += _(" kW");
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
tipText += _(" MW");
} break;
default:
@@ -135,16 +135,16 @@ wxString IndMotor::GetTipText() const
if(!m_online) reactivePower = 0.0;
tipText += _("\nQ = ") + wxString::FromDouble(reactivePower, 5);
switch(m_electricalData.reactivePowerUnit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
tipText += _(" p.u.");
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
tipText += _(" VAr");
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
tipText += _(" kVAr");
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
tipText += _(" MVAr");
} break;
default:
@@ -170,13 +170,13 @@ rapidxml::xml_node<>* IndMotor::SaveElement(rapidxml::xml_document<>& doc, rapid
XMLParser::SetNodeValue(doc, name, m_electricalData.name);
auto ratedPower = XMLParser::AppendNode(doc, electricalProp, "RatedPower");
XMLParser::SetNodeValue(doc, ratedPower, m_electricalData.ratedPower);
- XMLParser::SetNodeAttribute(doc, ratedPower, "UnitID", m_electricalData.activePowerUnit);
+ XMLParser::SetNodeAttribute(doc, ratedPower, "UnitID", static_cast<int>(m_electricalData.activePowerUnit));
auto activePower = XMLParser::AppendNode(doc, electricalProp, "ActivePower");
XMLParser::SetNodeValue(doc, activePower, m_electricalData.activePower);
- XMLParser::SetNodeAttribute(doc, activePower, "UnitID", m_electricalData.activePowerUnit);
+ XMLParser::SetNodeAttribute(doc, activePower, "UnitID", static_cast<int>(m_electricalData.activePowerUnit));
auto reactivePower = XMLParser::AppendNode(doc, electricalProp, "ReactivePower");
XMLParser::SetNodeValue(doc, reactivePower, m_electricalData.reactivePower);
- XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", m_electricalData.reactivePowerUnit);
+ XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", static_cast<int>(m_electricalData.reactivePowerUnit));
auto useMachineBase = XMLParser::AppendNode(doc, electricalProp, "UseMachineBase");
XMLParser::SetNodeValue(doc, useMachineBase, m_electricalData.useMachinePowerAsBase);
@@ -262,7 +262,7 @@ bool IndMotor::GetPlotData(ElementPlotData& plotData, PlotStudy study)
{
if(!m_electricalData.plotIndMachine) return false;
plotData.SetName(m_electricalData.name);
- plotData.SetCurveType(ElementPlotData::CT_IND_MOTOR);
+ plotData.SetCurveType(ElementPlotData::CurveType::CT_IND_MOTOR);
plotData.AddData(m_electricalData.terminalVoltageVector, _("Terminal voltage"));
plotData.AddData(m_electricalData.activePowerVector, _("Active power"));
diff --git a/Project/IndMotor.h b/Project/IndMotor.h
index 7e20a2f..f79dcb8 100644
--- a/Project/IndMotor.h
+++ b/Project/IndMotor.h
@@ -25,11 +25,11 @@ class IndMotorForm;
struct IndMotorElectricalData {
wxString name;
double ratedPower = 100.0;
- ElectricalUnit ratedPowerUnit = UNIT_MVA;
+ ElectricalUnit ratedPowerUnit = ElectricalUnit::UNIT_MVA;
double activePower = 100.0;
- ElectricalUnit activePowerUnit = UNIT_MW;
+ ElectricalUnit activePowerUnit = ElectricalUnit::UNIT_MW;
double reactivePower = 0.0;
- ElectricalUnit reactivePowerUnit = UNIT_MVAr;
+ ElectricalUnit reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
bool useMachinePowerAsBase = true;
bool calcQInPowerFlow = true;
@@ -134,7 +134,7 @@ class IndMotor : public Machines
virtual void InitPowerFlowMotor(double systemPowerBase, int busNumber);
virtual bool CalculateReactivePower(double voltage);
- virtual bool GetPlotData(ElementPlotData& plotData, PlotStudy study = STABILITY);
+ virtual bool GetPlotData(ElementPlotData& plotData, PlotStudy study = PlotStudy::STABILITY);
virtual rapidxml::xml_node<>* SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode);
virtual bool OpenElement(rapidxml::xml_node<>* elementNode, std::vector<Element*> parentList);
diff --git a/Project/IndMotorForm.cpp b/Project/IndMotorForm.cpp
index c4187f2..cfbaa83 100644
--- a/Project/IndMotorForm.cpp
+++ b/Project/IndMotorForm.cpp
@@ -48,7 +48,7 @@ IndMotorForm::IndMotorForm(wxWindow* parent, IndMotor* indMotor) : IndMotorFormB
case ElectricalUnit::UNIT_PU: {
m_choiceActivePower->SetSelection(0);
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
m_choiceActivePower->SetSelection(1);
} break;
case ElectricalUnit::UNIT_kW: {
@@ -66,13 +66,13 @@ IndMotorForm::IndMotorForm(wxWindow* parent, IndMotor* indMotor) : IndMotorFormB
case ElectricalUnit::UNIT_PU: {
m_choiceReactivePower->SetSelection(0);
} break;
- case ElectricalUnit::UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
m_choiceReactivePower->SetSelection(1);
} break;
- case ElectricalUnit::UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
m_choiceReactivePower->SetSelection(2);
} break;
- case ElectricalUnit::UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
m_choiceReactivePower->SetSelection(3);
} break;
default:
@@ -148,7 +148,7 @@ bool IndMotorForm::ValidateData()
data.activePowerUnit = ElectricalUnit::UNIT_PU;
} break;
case 1: {
- data.activePowerUnit = UNIT_W;
+ data.activePowerUnit = ElectricalUnit::UNIT_W;
} break;
case 2: {
data.activePowerUnit = ElectricalUnit::UNIT_kW;
@@ -166,13 +166,13 @@ bool IndMotorForm::ValidateData()
data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
case 1: {
- data.reactivePowerUnit = ElectricalUnit::UNIT_VAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_var;
} break;
case 2: {
- data.reactivePowerUnit = ElectricalUnit::UNIT_kVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_kvar;
} break;
case 3: {
- data.reactivePowerUnit = ElectricalUnit::UNIT_MVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
} break;
}
diff --git a/Project/Inductor.cpp b/Project/Inductor.cpp
index 8bd056d..77fbdde 100644
--- a/Project/Inductor.cpp
+++ b/Project/Inductor.cpp
@@ -221,15 +221,15 @@ InductorElectricalData Inductor::GetPUElectricalData(double systemPowerBase)
{
InductorElectricalData data = m_electricalData;
switch(data.reactivePowerUnit) {
- case ElectricalUnit::UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
data.reactivePower = data.reactivePower / systemPowerBase;
data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case ElectricalUnit::UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;
data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case ElectricalUnit::UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;
data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
@@ -265,13 +265,13 @@ wxString Inductor::GetTipText() const
case ElectricalUnit::UNIT_PU: {
tipText += _(" p.u.");
} break;
- case ElectricalUnit::UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
tipText += _(" VAr");
} break;
- case ElectricalUnit::UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
tipText += _(" kVAr");
} break;
- case ElectricalUnit::UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
tipText += _(" MVAr");
} break;
default:
@@ -295,7 +295,7 @@ rapidxml::xml_node<>* Inductor::SaveElement(rapidxml::xml_document<>& doc, rapid
XMLParser::SetNodeValue(doc, name, m_electricalData.name);
auto reactivePower = XMLParser::AppendNode(doc, electricalProp, "ReactivePower");
XMLParser::SetNodeValue(doc, reactivePower, m_electricalData.reactivePower);
- XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", m_electricalData.reactivePowerUnit);
+ XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", static_cast<int>(m_electricalData.reactivePowerUnit));
SaveSwitchingData(doc, electricalProp);
diff --git a/Project/Inductor.h b/Project/Inductor.h
index d613a4c..9227fb7 100644
--- a/Project/Inductor.h
+++ b/Project/Inductor.h
@@ -25,7 +25,7 @@ class ReactiveShuntElementForm;
struct InductorElectricalData {
wxString name;
double reactivePower = 100.0;
- ElectricalUnit reactivePowerUnit = ElectricalUnit::UNIT_MVAr;
+ ElectricalUnit reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
};
/**
diff --git a/Project/Line.cpp b/Project/Line.cpp
index 9750b82..6cb68c6 100644
--- a/Project/Line.cpp
+++ b/Project/Line.cpp
@@ -689,19 +689,19 @@ rapidxml::xml_node<>* Line::SaveElement(rapidxml::xml_document<>& doc, rapidxml:
XMLParser::SetNodeValue(doc, name, m_electricalData.name);
auto nominalVoltage = XMLParser::AppendNode(doc, electricalProp, "NominalVoltage");
XMLParser::SetNodeValue(doc, nominalVoltage, m_electricalData.nominalVoltage);
- XMLParser::SetNodeAttribute(doc, nominalVoltage, "UnitID", m_electricalData.nominalVoltageUnit);
+ XMLParser::SetNodeAttribute(doc, nominalVoltage, "UnitID", static_cast<int>(m_electricalData.nominalVoltageUnit));
auto nominalPower = XMLParser::AppendNode(doc, electricalProp, "NominalPower");
XMLParser::SetNodeValue(doc, nominalPower, m_electricalData.nominalPower);
- XMLParser::SetNodeAttribute(doc, nominalPower, "UnitID", m_electricalData.nominalPowerUnit);
+ XMLParser::SetNodeAttribute(doc, nominalPower, "UnitID", static_cast<int>(m_electricalData.nominalPowerUnit));
auto resistance = XMLParser::AppendNode(doc, electricalProp, "Resistance");
XMLParser::SetNodeValue(doc, resistance, m_electricalData.resistance);
- XMLParser::SetNodeAttribute(doc, resistance, "UnitID", m_electricalData.resistanceUnit);
+ XMLParser::SetNodeAttribute(doc, resistance, "UnitID", static_cast<int>(m_electricalData.resistanceUnit));
auto indReactance = XMLParser::AppendNode(doc, electricalProp, "IndReactance");
XMLParser::SetNodeValue(doc, indReactance, m_electricalData.indReactance);
- XMLParser::SetNodeAttribute(doc, indReactance, "UnitID", m_electricalData.indReactanceUnit);
+ XMLParser::SetNodeAttribute(doc, indReactance, "UnitID", static_cast<int>(m_electricalData.indReactanceUnit));
auto capSusceptance = XMLParser::AppendNode(doc, electricalProp, "CapSusceptance");
XMLParser::SetNodeValue(doc, capSusceptance, m_electricalData.capSusceptance);
- XMLParser::SetNodeAttribute(doc, capSusceptance, "UnitID", m_electricalData.capSusceptanceUnit);
+ XMLParser::SetNodeAttribute(doc, capSusceptance, "UnitID", static_cast<int>(m_electricalData.capSusceptanceUnit));
auto lineSize = XMLParser::AppendNode(doc, electricalProp, "LineSize");
XMLParser::SetNodeValue(doc, lineSize, m_electricalData.lineSize);
auto useLinePower = XMLParser::AppendNode(doc, electricalProp, "UseLinePower");
diff --git a/Project/Load.cpp b/Project/Load.cpp
index 22c9cd9..41ea255 100644
--- a/Project/Load.cpp
+++ b/Project/Load.cpp
@@ -48,7 +48,7 @@ bool Load::AddParent(Element* parent, wxPoint2DDouble position)
wxRect2DDouble genRect(0, 0, 0, 0);
m_switchRect.push_back(genRect); // Push a general rectangle.
UpdateSwitches();
- m_pfDirection = PF_TO_ELEMENT;
+ m_pfDirection = PowerFlowDirection::PF_TO_ELEMENT;
UpdatePowerFlowArrowsPosition();
return true;
@@ -220,33 +220,33 @@ LoadElectricalData Load::GetPUElectricalData(double systemPowerBase)
{
LoadElectricalData data = m_electricalData;
switch(data.activePowerUnit) {
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
data.activePower = data.activePower / systemPowerBase;
- data.activePowerUnit = UNIT_PU;
+ data.activePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
data.activePower = (data.activePower * 1e3) / systemPowerBase;
- data.activePowerUnit = UNIT_PU;
+ data.activePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
data.activePower = (data.activePower * 1e6) / systemPowerBase;
- data.activePowerUnit = UNIT_PU;
+ data.activePowerUnit = ElectricalUnit::UNIT_PU;
} break;
default:
break;
}
switch(data.reactivePowerUnit) {
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
data.reactivePower = data.reactivePower / systemPowerBase;
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
default:
break;
@@ -281,16 +281,16 @@ wxString Load::GetTipText() const
tipText += "\n";
tipText += _("\nP = ") + wxString::FromDouble(activePower, 5);
switch(m_electricalData.activePowerUnit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
tipText += _(" p.u.");
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
tipText += _(" W");
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
tipText += _(" kW");
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
tipText += _(" MW");
} break;
default:
@@ -298,16 +298,16 @@ wxString Load::GetTipText() const
}
tipText += _("\nQ = ") + wxString::FromDouble(reactivePower, 5);
switch(m_electricalData.reactivePowerUnit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
tipText += _(" p.u.");
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
tipText += _(" VAr");
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
tipText += _(" kVAr");
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
tipText += _(" MVAr");
} break;
default:
@@ -321,7 +321,7 @@ bool Load::GetPlotData(ElementPlotData& plotData, PlotStudy study)
{
if(!m_electricalData.plotLoad) return false;
plotData.SetName(m_electricalData.name);
- plotData.SetCurveType(ElementPlotData::CT_LOAD);
+ plotData.SetCurveType(ElementPlotData::CurveType::CT_LOAD);
std::vector<double> absVoltage, activePower, reactivePower, current;
for(unsigned int i = 0; i < m_electricalData.voltageVector.size(); ++i) {
@@ -354,10 +354,10 @@ rapidxml::xml_node<>* Load::SaveElement(rapidxml::xml_document<>& doc, rapidxml:
XMLParser::SetNodeValue(doc, name, m_electricalData.name);
auto activePower = XMLParser::AppendNode(doc, electricalProp, "ActivePower");
XMLParser::SetNodeValue(doc, activePower, m_electricalData.activePower);
- XMLParser::SetNodeAttribute(doc, activePower, "UnitID", m_electricalData.activePowerUnit);
+ XMLParser::SetNodeAttribute(doc, activePower, "UnitID", static_cast<int>(m_electricalData.activePowerUnit));
auto reactivePower = XMLParser::AppendNode(doc, electricalProp, "ReactivePower");
XMLParser::SetNodeValue(doc, reactivePower, m_electricalData.reactivePower);
- XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", m_electricalData.reactivePowerUnit);
+ XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", static_cast<int>(m_electricalData.reactivePowerUnit));
auto loadType = XMLParser::AppendNode(doc, electricalProp, "LoadType");
XMLParser::SetNodeValue(doc, loadType, m_electricalData.loadType);
diff --git a/Project/Load.h b/Project/Load.h
index 56b1549..bc27846 100644
--- a/Project/Load.h
+++ b/Project/Load.h
@@ -26,9 +26,9 @@ enum LoadType { CONST_POWER = 0, CONST_IMPEDANCE };
struct LoadElectricalData {
wxString name;
double activePower = 100.0;
- ElectricalUnit activePowerUnit = UNIT_MW;
+ ElectricalUnit activePowerUnit = ElectricalUnit::UNIT_MW;
double reactivePower = 0.0;
- ElectricalUnit reactivePowerUnit = UNIT_MVAr;
+ ElectricalUnit reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
LoadType loadType = CONST_POWER;
// Stability
@@ -88,7 +88,7 @@ class Load : public Shunt
LoadElectricalData GetElectricalData() { return m_electricalData; }
LoadElectricalData GetPUElectricalData(double systemPowerBase);
void SetElectricalData(const LoadElectricalData& electricalData) { m_electricalData = electricalData; }
- virtual bool GetPlotData(ElementPlotData& plotData, PlotStudy study = STABILITY);
+ virtual bool GetPlotData(ElementPlotData& plotData, PlotStudy study = PlotStudy::STABILITY);
virtual rapidxml::xml_node<>* SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode);
virtual bool OpenElement(rapidxml::xml_node<>* elementNode, std::vector<Element*> parentList);
diff --git a/Project/LoadForm.cpp b/Project/LoadForm.cpp
index ca73ba5..3317018 100644
--- a/Project/LoadForm.cpp
+++ b/Project/LoadForm.cpp
@@ -28,16 +28,16 @@ LoadForm::LoadForm(wxWindow* parent, Load* load) : LoadFormBase(parent)
m_textCtrlActivePower->SetValue(Load::StringFromDouble(data.activePower));
switch(data.activePowerUnit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceActivePower->SetSelection(0);
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
m_choiceActivePower->SetSelection(1);
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
m_choiceActivePower->SetSelection(2);
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
m_choiceActivePower->SetSelection(3);
} break;
default:
@@ -46,16 +46,16 @@ LoadForm::LoadForm(wxWindow* parent, Load* load) : LoadFormBase(parent)
m_textCtrlReactivePower->SetValue(Load::StringFromDouble(data.reactivePower));
switch(data.reactivePowerUnit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceReactivePower->SetSelection(0);
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
m_choiceReactivePower->SetSelection(1);
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
m_choiceReactivePower->SetSelection(2);
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
m_choiceReactivePower->SetSelection(3);
} break;
default:
@@ -115,16 +115,16 @@ bool LoadForm::ValidateData()
return false;
switch(m_choiceActivePower->GetSelection()) {
case 0: {
- data.activePowerUnit = UNIT_PU;
+ data.activePowerUnit = ElectricalUnit::UNIT_PU;
} break;
case 1: {
- data.activePowerUnit = UNIT_W;
+ data.activePowerUnit = ElectricalUnit::UNIT_W;
} break;
case 2: {
- data.activePowerUnit = UNIT_kW;
+ data.activePowerUnit = ElectricalUnit::UNIT_kW;
} break;
case 3: {
- data.activePowerUnit = UNIT_MW;
+ data.activePowerUnit = ElectricalUnit::UNIT_MW;
} break;
}
@@ -133,16 +133,16 @@ bool LoadForm::ValidateData()
return false;
switch(m_choiceReactivePower->GetSelection()) {
case 0: {
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
case 1: {
- data.reactivePowerUnit = UNIT_VAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_var;
} break;
case 2: {
- data.reactivePowerUnit = UNIT_kVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_kvar;
} break;
case 3: {
- data.reactivePowerUnit = UNIT_MVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
} break;
}
diff --git a/Project/MainFrame.cpp b/Project/MainFrame.cpp
index 36712d5..51f6592 100644
--- a/Project/MainFrame.cpp
+++ b/Project/MainFrame.cpp
@@ -306,7 +306,7 @@ void MainFrame::OnMoveClick(wxRibbonButtonBarEvent& event)
Element* element = *it;
if(element->IsSelected()) { element->StartMove(averagePos); }
}
- workspace->SetWorkspaceMode(Workspace::MODE_MOVE_ELEMENT);
+ workspace->SetWorkspaceMode(Workspace::WorkspaceMode::MODE_MOVE_ELEMENT);
}
}
@@ -427,7 +427,7 @@ void MainFrame::OnAddElementsClick(wxCommandEvent& event)
Workspace* workspace = static_cast<Workspace*>(m_auiNotebook->GetCurrentPage());
if(workspace) {
- if(workspace->GetWorkspaceMode() != Workspace::MODE_INSERT) {
+ if(workspace->GetWorkspaceMode() != Workspace::WorkspaceMode::MODE_INSERT) {
auto elementList = workspace->GetElementList();
wxString statusBarText = "";
bool newElement = false;
@@ -514,7 +514,7 @@ void MainFrame::OnAddElementsClick(wxCommandEvent& event)
}
if(newElement) {
workspace->SetElementList(elementList);
- workspace->SetWorkspaceMode(Workspace::MODE_INSERT);
+ workspace->SetWorkspaceMode(Workspace::WorkspaceMode::MODE_INSERT);
workspace->SetStatusBarText(statusBarText);
workspace->Redraw();
}
diff --git a/Project/PSP-UFU.vcxproj b/Project/PSP-UFU.vcxproj
index 6d6086b..4c48ce2 100644
--- a/Project/PSP-UFU.vcxproj
+++ b/Project/PSP-UFU.vcxproj
@@ -100,6 +100,7 @@
<PreprocessorDefinitions>_DEBUG;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpplatest</LanguageStandard>
+ <DisableSpecificWarnings>26495;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
diff --git a/Project/PowerElement.cpp b/Project/PowerElement.cpp
index 870a30e..ffb920e 100644
--- a/Project/PowerElement.cpp
+++ b/Project/PowerElement.cpp
@@ -202,16 +202,16 @@ void PowerElement::DrawDCPowerFlowPts(wxGraphicsContext* gc) const
double PowerElement::GetValueFromUnit(double value, ElectricalUnit valueUnit)
{
switch(valueUnit) {
- case UNIT_kV:
- case UNIT_kA:
- case UNIT_kW:
- case UNIT_kVA:
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kV:
+ case ElectricalUnit::UNIT_kA:
+ case ElectricalUnit::UNIT_kW:
+ case ElectricalUnit::UNIT_kVA:
+ case ElectricalUnit::UNIT_kvar: {
return value * 1e3;
} break;
- case UNIT_MW:
- case UNIT_MVA:
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_MW:
+ case ElectricalUnit::UNIT_MVA:
+ case ElectricalUnit::UNIT_Mvar: {
return value * 1e6;
}
default:
@@ -305,7 +305,7 @@ void PowerElement::SaveSwitchingData(rapidxml::xml_document<>& doc, rapidxml::xm
auto switching = XMLParser::AppendNode(doc, switchingList, "Switching");
XMLParser::SetNodeAttribute(doc, switching, "ID", i);
auto swType = XMLParser::AppendNode(doc, switching, "Type");
- XMLParser::SetNodeValue(doc, swType, m_swData.swType[i]);
+ XMLParser::SetNodeValue(doc, swType, static_cast<int>(m_swData.swType[i]));
auto swTime = XMLParser::AppendNode(doc, switching, "Time");
XMLParser::SetNodeValue(doc, swTime, m_swData.swTime[i]);
}
diff --git a/Project/PowerElement.h b/Project/PowerElement.h
index 2a106cb..3e9a587 100644
--- a/Project/PowerElement.h
+++ b/Project/PowerElement.h
@@ -25,7 +25,7 @@
* @enum ElectricalUnit
* @brief Electrical units.
*/
-enum ElectricalUnit {
+enum class ElectricalUnit : int {
UNIT_PU = 0, /**< Per unit (p.u.) */
UNIT_V, /**< Volt */
UNIT_kV, /**< Kilovolts */
@@ -37,9 +37,9 @@ enum ElectricalUnit {
UNIT_VA, /**< Volt-ampere */
UNIT_kVA, /**< Kilovolt-ampere */
UNIT_MVA, /**< Megavolt-ampere */
- UNIT_VAr, /**< Volt-ampere reactive */
- UNIT_kVAr, /**< Kilovolt-ampere reactive */
- UNIT_MVAr, /**< Megavolt-ampere reactive */
+ UNIT_var, /**< Volt-ampere reactive */
+ UNIT_kvar, /**< Kilovolt-ampere reactive */
+ UNIT_Mvar, /**< Megavolt-ampere reactive */
UNIT_OHM, /**< Ohm */
UNIT_OHM_km, /**< Ohm/km */
UNIT_S, /**< Siemens */
@@ -52,7 +52,7 @@ enum ElectricalUnit {
* @enum FaultData
* @brief Information about fault (type and location).
*/
-enum FaultData {
+enum class FaultData : int {
FAULT_THREEPHASE = 0, /**< Three-phase fault */
FAULT_2LINE, /**< Line-to-line fault */
FAULT_2LINE_GROUND, /**< Double line-to-ground fault */
@@ -66,7 +66,7 @@ enum FaultData {
* @enum SwitchingType
* @brief Type of switching.
*/
-enum SwitchingType {
+enum class SwitchingType : int {
SW_INSERT = 0, /**< Insert element */
SW_REMOVE /**< Remove element */
};
@@ -75,7 +75,7 @@ enum SwitchingType {
* @enum PowerFlowDirection
* @brief Direction of power flow arrows.
*/
-enum PowerFlowDirection {
+enum class PowerFlowDirection : int {
PF_NONE = 0, /**< No direction (no arrows printed) */
PF_TO_BUS, /**< Element to bus */
PF_TO_ELEMENT, /**< Bus to element */
@@ -83,7 +83,7 @@ enum PowerFlowDirection {
PF_BUS2_TO_BUS1 /**< Second bus to first bus (branch elements) */
};
-enum PlotStudy {
+enum class PlotStudy : int {
STABILITY = 0, /**< Stability studies */
FREQRESPONSE /**< Frequency resonse (Harmonics) */
};
@@ -211,7 +211,7 @@ class PowerElement : public Element
* @param plotData Plot data to be filled.
* @return true if the plot data was successfully filled, false otherwise.
*/
- virtual bool GetPlotData(ElementPlotData& plotData, PlotStudy study = STABILITY) { return false; }
+ virtual bool GetPlotData(ElementPlotData& plotData, PlotStudy study = PlotStudy::STABILITY) { return false; }
/**
* @brief Check if the power element have dynamic event.
* @return true if the element have dynamic an event, false otherwise.
@@ -233,7 +233,7 @@ class PowerElement : public Element
protected:
SwitchingData m_swData;
std::vector<std::vector<wxPoint2DDouble> > m_powerFlowArrow;
- PowerFlowDirection m_pfDirection = PF_NONE;
+ PowerFlowDirection m_pfDirection = PowerFlowDirection::PF_NONE;
OpenGLColour m_busColour;
OpenGLColour m_onlineElementColour;
diff --git a/Project/ReactiveShuntElementForm.cpp b/Project/ReactiveShuntElementForm.cpp
index aceba3e..a01f36e 100644
--- a/Project/ReactiveShuntElementForm.cpp
+++ b/Project/ReactiveShuntElementForm.cpp
@@ -33,13 +33,13 @@ ReactiveShuntElementForm::ReactiveShuntElementForm(wxWindow* parent, Capacitor*
case ElectricalUnit::UNIT_PU: {
m_choiceReactivePower->SetSelection(0);
} break;
- case ElectricalUnit::UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
m_choiceReactivePower->SetSelection(1);
} break;
- case ElectricalUnit::UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
m_choiceReactivePower->SetSelection(2);
} break;
- case ElectricalUnit::UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
m_choiceReactivePower->SetSelection(3);
} break;
default:
@@ -62,13 +62,13 @@ ReactiveShuntElementForm::ReactiveShuntElementForm(wxWindow* parent, Inductor* i
case ElectricalUnit::UNIT_PU: {
m_choiceReactivePower->SetSelection(0);
} break;
- case ElectricalUnit::UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
m_choiceReactivePower->SetSelection(1);
} break;
- case ElectricalUnit::UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
m_choiceReactivePower->SetSelection(2);
} break;
- case ElectricalUnit::UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
m_choiceReactivePower->SetSelection(3);
} break;
default:
@@ -117,13 +117,13 @@ bool ReactiveShuntElementForm::ValidateData()
data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
case 1: {
- data.reactivePowerUnit = ElectricalUnit::UNIT_VAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_var;
} break;
case 2: {
- data.reactivePowerUnit = ElectricalUnit::UNIT_kVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_kvar;
} break;
case 3: {
- data.reactivePowerUnit = ElectricalUnit::UNIT_MVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
} break;
}
@@ -141,13 +141,13 @@ bool ReactiveShuntElementForm::ValidateData()
data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
} break;
case 1: {
- data.reactivePowerUnit = ElectricalUnit::UNIT_VAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_var;
} break;
case 2: {
- data.reactivePowerUnit = ElectricalUnit::UNIT_kVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_kvar;
} break;
case 3: {
- data.reactivePowerUnit = ElectricalUnit::UNIT_MVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
} break;
}
diff --git a/Project/SyncGenerator.cpp b/Project/SyncGenerator.cpp
index 49571ac..7038bb2 100644
--- a/Project/SyncGenerator.cpp
+++ b/Project/SyncGenerator.cpp
@@ -91,40 +91,40 @@ SyncGeneratorElectricalData SyncGenerator::GetPUElectricalData(double systemPowe
// Active power
double activePower = GetValueFromUnit(data.activePower, data.activePowerUnit);
if(!m_online) activePower = 0.0;
- if(data.activePowerUnit == UNIT_PU) {
+ if(data.activePowerUnit == ElectricalUnit::UNIT_PU) {
if(data.useMachineBase) data.activePower = (activePower * machineBasePower) / systemPowerBase;
} else {
data.activePower = activePower / systemPowerBase;
}
- data.activePowerUnit = UNIT_PU;
+ data.activePowerUnit = ElectricalUnit::UNIT_PU;
// Reactive power
double reactivePower = GetValueFromUnit(data.reactivePower, data.reactivePowerUnit);
if(!m_online) reactivePower = 0.0;
- if(data.reactivePowerUnit == UNIT_PU) {
+ if(data.reactivePowerUnit == ElectricalUnit::UNIT_PU) {
if(data.useMachineBase) data.reactivePower = (reactivePower * machineBasePower) / systemPowerBase;
} else {
data.reactivePower = reactivePower / systemPowerBase;
}
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
// Max reactive power
double maxReactive = GetValueFromUnit(data.maxReactive, data.maxReactiveUnit);
- if(data.maxReactiveUnit == UNIT_PU) {
+ if(data.maxReactiveUnit == ElectricalUnit::UNIT_PU) {
if(data.useMachineBase) data.maxReactive = (maxReactive * machineBasePower) / systemPowerBase;
} else {
data.maxReactive = maxReactive / systemPowerBase;
}
- data.maxReactiveUnit = UNIT_PU;
+ data.maxReactiveUnit = ElectricalUnit::UNIT_PU;
// Min reactive power
double minReactive = GetValueFromUnit(data.minReactive, data.minReactiveUnit);
- if(data.minReactiveUnit == UNIT_PU) {
+ if(data.minReactiveUnit == ElectricalUnit::UNIT_PU) {
if(data.useMachineBase) data.minReactive = (minReactive * machineBasePower) / systemPowerBase;
} else {
data.minReactive = minReactive / systemPowerBase;
}
- data.minReactiveUnit = UNIT_PU;
+ data.minReactiveUnit = ElectricalUnit::UNIT_PU;
double baseVoltage = GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);
double systemBaseImpedance = (baseVoltage * baseVoltage) / systemPowerBase;
@@ -196,16 +196,16 @@ wxString SyncGenerator::GetTipText() const
if(!m_online) activePower = 0.0;
tipText += _("\nP = ") + wxString::FromDouble(activePower, 5);
switch(m_electricalData.activePowerUnit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
tipText += _(" p.u.");
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
tipText += _(" W");
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
tipText += _(" kW");
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
tipText += _(" MW");
} break;
default:
@@ -215,16 +215,16 @@ wxString SyncGenerator::GetTipText() const
if(!m_online) reactivePower = 0.0;
tipText += _("\nQ = ") + wxString::FromDouble(reactivePower, 5);
switch(m_electricalData.reactivePowerUnit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
tipText += _(" p.u.");
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
tipText += _(" VAr");
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
tipText += _(" kVAr");
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
tipText += _(" MVAr");
} break;
default:
@@ -238,7 +238,7 @@ bool SyncGenerator::GetPlotData(ElementPlotData& plotData, PlotStudy study)
{
if(!m_electricalData.plotSyncMachine) return false;
plotData.SetName(m_electricalData.name);
- plotData.SetCurveType(ElementPlotData::CT_SYNC_GENERATOR);
+ plotData.SetCurveType(ElementPlotData::CurveType::CT_SYNC_GENERATOR);
std::vector<double> absTerminalVoltage, activePower, reactivePower;
for(unsigned int i = 0; i < m_electricalData.terminalVoltageVector.size(); ++i) {
@@ -268,26 +268,26 @@ rapidxml::xml_node<>* SyncGenerator::SaveElement(rapidxml::xml_document<>& doc,
XMLParser::SetNodeValue(doc, name, m_electricalData.name);
auto nominalPower = XMLParser::AppendNode(doc, electricalProp, "NominalPower");
XMLParser::SetNodeValue(doc, nominalPower, m_electricalData.nominalPower);
- XMLParser::SetNodeAttribute(doc, nominalPower, "UnitID", m_electricalData.nominalPowerUnit);
+ XMLParser::SetNodeAttribute(doc, nominalPower, "UnitID", static_cast<int>(m_electricalData.nominalPowerUnit));
auto nominalVoltage = XMLParser::AppendNode(doc, electricalProp, "NominalVoltage");
XMLParser::SetNodeValue(doc, nominalVoltage, m_electricalData.nominalVoltage);
- XMLParser::SetNodeAttribute(doc, nominalVoltage, "UnitID", m_electricalData.nominalVoltageUnit);
+ XMLParser::SetNodeAttribute(doc, nominalVoltage, "UnitID", static_cast<int>(m_electricalData.nominalVoltageUnit));
auto activePower = XMLParser::AppendNode(doc, electricalProp, "ActivePower");
XMLParser::SetNodeValue(doc, activePower, m_electricalData.activePower);
- XMLParser::SetNodeAttribute(doc, activePower, "UnitID", m_electricalData.activePowerUnit);
+ XMLParser::SetNodeAttribute(doc, activePower, "UnitID", static_cast<int>(m_electricalData.activePowerUnit));
auto reactivePower = XMLParser::AppendNode(doc, electricalProp, "ReactivePower");
XMLParser::SetNodeValue(doc, reactivePower, m_electricalData.reactivePower);
- XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", m_electricalData.reactivePowerUnit);
+ XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", static_cast<int>(m_electricalData.reactivePowerUnit));
auto haveMaxReactive = XMLParser::AppendNode(doc, electricalProp, "HaveMaxReactive");
XMLParser::SetNodeValue(doc, haveMaxReactive, m_electricalData.haveMaxReactive);
auto maxReactive = XMLParser::AppendNode(doc, electricalProp, "MaxReactive");
XMLParser::SetNodeValue(doc, maxReactive, m_electricalData.maxReactive);
- XMLParser::SetNodeAttribute(doc, maxReactive, "UnitID", m_electricalData.maxReactiveUnit);
+ XMLParser::SetNodeAttribute(doc, maxReactive, "UnitID", static_cast<int>(m_electricalData.maxReactiveUnit));
auto haveMinReactive = XMLParser::AppendNode(doc, electricalProp, "HaveMinReactive");
XMLParser::SetNodeValue(doc, haveMinReactive, m_electricalData.haveMinReactive);
auto minReactive = XMLParser::AppendNode(doc, electricalProp, "MinReactive");
XMLParser::SetNodeValue(doc, minReactive, m_electricalData.minReactive);
- XMLParser::SetNodeAttribute(doc, minReactive, "UnitID", m_electricalData.minReactiveUnit);
+ XMLParser::SetNodeAttribute(doc, minReactive, "UnitID", static_cast<int>(m_electricalData.minReactiveUnit));
auto useMachineBase = XMLParser::AppendNode(doc, electricalProp, "UseMachineBase");
XMLParser::SetNodeValue(doc, useMachineBase, m_electricalData.useMachineBase);
diff --git a/Project/SyncGenerator.h b/Project/SyncGenerator.h
index e696ca4..48ae607 100644
--- a/Project/SyncGenerator.h
+++ b/Project/SyncGenerator.h
@@ -26,19 +26,19 @@ struct SyncGeneratorElectricalData {
// General
wxString name = "";
double nominalPower = 100.0;
- ElectricalUnit nominalPowerUnit = UNIT_MVA;
+ ElectricalUnit nominalPowerUnit = ElectricalUnit::UNIT_MVA;
double nominalVoltage = 13.8;
- ElectricalUnit nominalVoltageUnit = UNIT_kV;
+ ElectricalUnit nominalVoltageUnit = ElectricalUnit::UNIT_kV;
double activePower = 100.0;
- ElectricalUnit activePowerUnit = UNIT_MW;
+ ElectricalUnit activePowerUnit = ElectricalUnit::UNIT_MW;
double reactivePower = 0.0;
- ElectricalUnit reactivePowerUnit = UNIT_MVAr;
+ ElectricalUnit reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
bool haveMaxReactive = false;
double maxReactive = 9999.0;
- ElectricalUnit maxReactiveUnit = UNIT_MVAr;
+ ElectricalUnit maxReactiveUnit = ElectricalUnit::UNIT_Mvar;
bool haveMinReactive = false;
double minReactive = -9999.0;
- ElectricalUnit minReactiveUnit = UNIT_MVAr;
+ ElectricalUnit minReactiveUnit = ElectricalUnit::UNIT_Mvar;
bool useMachineBase = true;
// Fault
@@ -157,7 +157,7 @@ class SyncGenerator : public Machines
virtual void SetElectricalData(SyncGeneratorElectricalData electricalData) { m_electricalData = electricalData; }
virtual void SetNominalVoltage(std::vector<double> nominalVoltage, std::vector<ElectricalUnit> nominalVoltageUnit);
virtual void SavePlotData();
- virtual bool GetPlotData(ElementPlotData& plotData, PlotStudy study = STABILITY);
+ virtual bool GetPlotData(ElementPlotData& plotData, PlotStudy study = PlotStudy::STABILITY);
virtual rapidxml::xml_node<>* SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode);
virtual bool OpenElement(rapidxml::xml_node<>* elementNode, std::vector<Element*> parentList);
diff --git a/Project/SyncMachineForm.cpp b/Project/SyncMachineForm.cpp
index 3c27a7c..494f7a2 100644
--- a/Project/SyncMachineForm.cpp
+++ b/Project/SyncMachineForm.cpp
@@ -40,13 +40,13 @@ SyncMachineForm::SyncMachineForm(wxWindow* parent, SyncGenerator* syncGenerator,
m_textCtrlnominalPower->SetValue(SyncGenerator::StringFromDouble(data.nominalPower));
switch(data.nominalPowerUnit) {
- case UNIT_VA:
+ case ElectricalUnit::UNIT_VA:
m_choiceNominalPower->SetSelection(0);
break;
- case UNIT_kVA:
+ case ElectricalUnit::UNIT_kVA:
m_choiceNominalPower->SetSelection(1);
break;
- case UNIT_MVA:
+ case ElectricalUnit::UNIT_MVA:
m_choiceNominalPower->SetSelection(2);
break;
default:
@@ -55,16 +55,16 @@ SyncMachineForm::SyncMachineForm(wxWindow* parent, SyncGenerator* syncGenerator,
m_textCtrlActivePower->SetValue(SyncGenerator::StringFromDouble(data.activePower));
switch(data.activePowerUnit) {
- case UNIT_PU:
+ case ElectricalUnit::UNIT_PU:
m_choiceActivePower->SetSelection(0);
break;
- case UNIT_W:
+ case ElectricalUnit::UNIT_W:
m_choiceActivePower->SetSelection(1);
break;
- case UNIT_kW:
+ case ElectricalUnit::UNIT_kW:
m_choiceActivePower->SetSelection(2);
break;
- case UNIT_MW:
+ case ElectricalUnit::UNIT_MW:
m_choiceActivePower->SetSelection(3);
break;
default:
@@ -73,16 +73,16 @@ SyncMachineForm::SyncMachineForm(wxWindow* parent, SyncGenerator* syncGenerator,
m_textCtrlReactivePower->SetValue(SyncGenerator::StringFromDouble(data.reactivePower));
switch(data.reactivePowerUnit) {
- case UNIT_PU:
+ case ElectricalUnit::UNIT_PU:
m_choiceReactivePower->SetSelection(0);
break;
- case UNIT_VAr:
+ case ElectricalUnit::UNIT_var:
m_choiceReactivePower->SetSelection(1);
break;
- case UNIT_kVAr:
+ case ElectricalUnit::UNIT_kvar:
m_choiceReactivePower->SetSelection(2);
break;
- case UNIT_MVAr:
+ case ElectricalUnit::UNIT_Mvar:
m_choiceReactivePower->SetSelection(3);
break;
default:
@@ -92,16 +92,16 @@ SyncMachineForm::SyncMachineForm(wxWindow* parent, SyncGenerator* syncGenerator,
m_textCtrlMaxRectivePower->SetValue(SyncGenerator::StringFromDouble(data.maxReactive));
switch(data.maxReactiveUnit) {
- case UNIT_PU:
+ case ElectricalUnit::UNIT_PU:
m_choiceMaxRectivePower->SetSelection(0);
break;
- case UNIT_VAr:
+ case ElectricalUnit::UNIT_var:
m_choiceMaxRectivePower->SetSelection(1);
break;
- case UNIT_kVAr:
+ case ElectricalUnit::UNIT_kvar:
m_choiceMaxRectivePower->SetSelection(2);
break;
- case UNIT_MVAr:
+ case ElectricalUnit::UNIT_Mvar:
m_choiceMaxRectivePower->SetSelection(3);
break;
default:
@@ -113,16 +113,16 @@ SyncMachineForm::SyncMachineForm(wxWindow* parent, SyncGenerator* syncGenerator,
m_checkBoxMinReactive->SetValue(data.haveMinReactive);
m_textCtrlMinRectivePower->SetValue(SyncGenerator::StringFromDouble(data.minReactive));
switch(data.minReactiveUnit) {
- case UNIT_PU:
+ case ElectricalUnit::UNIT_PU:
m_choiceMinRectivePower->SetSelection(0);
break;
- case UNIT_VAr:
+ case ElectricalUnit::UNIT_var:
m_choiceMinRectivePower->SetSelection(1);
break;
- case UNIT_kVAr:
+ case ElectricalUnit::UNIT_kvar:
m_choiceMinRectivePower->SetSelection(2);
break;
- case UNIT_MVAr:
+ case ElectricalUnit::UNIT_Mvar:
m_choiceMinRectivePower->SetSelection(3);
break;
default:
@@ -164,13 +164,13 @@ SyncMachineForm::SyncMachineForm(wxWindow* parent, SyncMotor* syncMotor) : SyncM
m_textCtrlnominalPower->SetValue(SyncMotor::StringFromDouble(data.nominalPower));
switch(data.nominalPowerUnit) {
- case UNIT_VA:
+ case ElectricalUnit::UNIT_VA:
m_choiceNominalPower->SetSelection(0);
break;
- case UNIT_kVA:
+ case ElectricalUnit::UNIT_kVA:
m_choiceNominalPower->SetSelection(1);
break;
- case UNIT_MVA:
+ case ElectricalUnit::UNIT_MVA:
m_choiceNominalPower->SetSelection(2);
break;
default:
@@ -179,16 +179,16 @@ SyncMachineForm::SyncMachineForm(wxWindow* parent, SyncMotor* syncMotor) : SyncM
m_textCtrlActivePower->SetValue(SyncMotor::StringFromDouble(data.activePower));
switch(data.activePowerUnit) {
- case UNIT_PU:
+ case ElectricalUnit::UNIT_PU:
m_choiceActivePower->SetSelection(0);
break;
- case UNIT_W:
+ case ElectricalUnit::UNIT_W:
m_choiceActivePower->SetSelection(1);
break;
- case UNIT_kW:
+ case ElectricalUnit::UNIT_kW:
m_choiceActivePower->SetSelection(2);
break;
- case UNIT_MW:
+ case ElectricalUnit::UNIT_MW:
m_choiceActivePower->SetSelection(3);
break;
default:
@@ -197,16 +197,16 @@ SyncMachineForm::SyncMachineForm(wxWindow* parent, SyncMotor* syncMotor) : SyncM
m_textCtrlReactivePower->SetValue(SyncMotor::StringFromDouble(data.reactivePower));
switch(data.reactivePowerUnit) {
- case UNIT_PU:
+ case ElectricalUnit::UNIT_PU:
m_choiceReactivePower->SetSelection(0);
break;
- case UNIT_VAr:
+ case ElectricalUnit::UNIT_var:
m_choiceReactivePower->SetSelection(1);
break;
- case UNIT_kVAr:
+ case ElectricalUnit::UNIT_kvar:
m_choiceReactivePower->SetSelection(2);
break;
- case UNIT_MVAr:
+ case ElectricalUnit::UNIT_Mvar:
m_choiceReactivePower->SetSelection(3);
break;
default:
@@ -216,16 +216,16 @@ SyncMachineForm::SyncMachineForm(wxWindow* parent, SyncMotor* syncMotor) : SyncM
m_textCtrlMaxRectivePower->SetValue(SyncMotor::StringFromDouble(data.maxReactive));
switch(data.maxReactiveUnit) {
- case UNIT_PU:
+ case ElectricalUnit::UNIT_PU:
m_choiceMaxRectivePower->SetSelection(0);
break;
- case UNIT_VAr:
+ case ElectricalUnit::UNIT_var:
m_choiceMaxRectivePower->SetSelection(1);
break;
- case UNIT_kVAr:
+ case ElectricalUnit::UNIT_kvar:
m_choiceMaxRectivePower->SetSelection(2);
break;
- case UNIT_MVAr:
+ case ElectricalUnit::UNIT_Mvar:
m_choiceMaxRectivePower->SetSelection(3);
break;
default:
@@ -237,16 +237,16 @@ SyncMachineForm::SyncMachineForm(wxWindow* parent, SyncMotor* syncMotor) : SyncM
m_checkBoxMinReactive->SetValue(data.haveMinReactive);
m_textCtrlMinRectivePower->SetValue(SyncMotor::StringFromDouble(data.minReactive));
switch(data.minReactiveUnit) {
- case UNIT_PU:
+ case ElectricalUnit::UNIT_PU:
m_choiceMinRectivePower->SetSelection(0);
break;
- case UNIT_VAr:
+ case ElectricalUnit::UNIT_var:
m_choiceMinRectivePower->SetSelection(1);
break;
- case UNIT_kVAr:
+ case ElectricalUnit::UNIT_kvar:
m_choiceMinRectivePower->SetSelection(2);
break;
- case UNIT_MVAr:
+ case ElectricalUnit::UNIT_Mvar:
m_choiceMinRectivePower->SetSelection(3);
break;
default:
@@ -310,13 +310,13 @@ bool SyncMachineForm::ValidateData()
return false;
switch(m_choiceNominalPower->GetSelection()) {
case 0:
- data.nominalPowerUnit = UNIT_VA;
+ data.nominalPowerUnit = ElectricalUnit::UNIT_VA;
break;
case 1:
- data.nominalPowerUnit = UNIT_kVA;
+ data.nominalPowerUnit = ElectricalUnit::UNIT_kVA;
break;
case 2:
- data.nominalPowerUnit = UNIT_MVA;
+ data.nominalPowerUnit = ElectricalUnit::UNIT_MVA;
break;
}
@@ -325,16 +325,16 @@ bool SyncMachineForm::ValidateData()
return false;
switch(m_choiceActivePower->GetSelection()) {
case 0:
- data.activePowerUnit = UNIT_PU;
+ data.activePowerUnit = ElectricalUnit::UNIT_PU;
break;
case 1:
- data.activePowerUnit = UNIT_W;
+ data.activePowerUnit = ElectricalUnit::UNIT_W;
break;
case 2:
- data.activePowerUnit = UNIT_kW;
+ data.activePowerUnit = ElectricalUnit::UNIT_kW;
break;
case 3:
- data.activePowerUnit = UNIT_MW;
+ data.activePowerUnit = ElectricalUnit::UNIT_MW;
break;
}
@@ -343,16 +343,16 @@ bool SyncMachineForm::ValidateData()
return false;
switch(m_choiceReactivePower->GetSelection()) {
case 0:
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
break;
case 1:
- data.reactivePowerUnit = UNIT_VAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_var;
break;
case 2:
- data.reactivePowerUnit = UNIT_kVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_kvar;
break;
case 3:
- data.reactivePowerUnit = UNIT_MVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
break;
}
@@ -363,16 +363,16 @@ bool SyncMachineForm::ValidateData()
return false;
switch(m_choiceMaxRectivePower->GetSelection()) {
case 0:
- data.maxReactiveUnit = UNIT_PU;
+ data.maxReactiveUnit = ElectricalUnit::UNIT_PU;
break;
case 1:
- data.maxReactiveUnit = UNIT_VAr;
+ data.maxReactiveUnit = ElectricalUnit::UNIT_var;
break;
case 2:
- data.maxReactiveUnit = UNIT_kVAr;
+ data.maxReactiveUnit = ElectricalUnit::UNIT_kvar;
break;
case 3:
- data.maxReactiveUnit = UNIT_MVAr;
+ data.maxReactiveUnit = ElectricalUnit::UNIT_Mvar;
break;
}
}
@@ -384,16 +384,16 @@ bool SyncMachineForm::ValidateData()
return false;
switch(m_choiceMinRectivePower->GetSelection()) {
case 0:
- data.minReactiveUnit = UNIT_PU;
+ data.minReactiveUnit = ElectricalUnit::UNIT_PU;
break;
case 1:
- data.minReactiveUnit = UNIT_VAr;
+ data.minReactiveUnit = ElectricalUnit::UNIT_var;
break;
case 2:
- data.minReactiveUnit = UNIT_kVAr;
+ data.minReactiveUnit = ElectricalUnit::UNIT_kvar;
break;
case 3:
- data.minReactiveUnit = UNIT_MVAr;
+ data.minReactiveUnit = ElectricalUnit::UNIT_Mvar;
break;
}
}
@@ -444,13 +444,13 @@ bool SyncMachineForm::ValidateData()
return false;
switch(m_choiceNominalPower->GetSelection()) {
case 0:
- data.nominalPowerUnit = UNIT_VA;
+ data.nominalPowerUnit = ElectricalUnit::UNIT_VA;
break;
case 1:
- data.nominalPowerUnit = UNIT_kVA;
+ data.nominalPowerUnit = ElectricalUnit::UNIT_kVA;
break;
case 2:
- data.nominalPowerUnit = UNIT_MVA;
+ data.nominalPowerUnit = ElectricalUnit::UNIT_MVA;
break;
}
@@ -459,16 +459,16 @@ bool SyncMachineForm::ValidateData()
return false;
switch(m_choiceActivePower->GetSelection()) {
case 0:
- data.activePowerUnit = UNIT_PU;
+ data.activePowerUnit = ElectricalUnit::UNIT_PU;
break;
case 1:
- data.activePowerUnit = UNIT_W;
+ data.activePowerUnit = ElectricalUnit::UNIT_W;
break;
case 2:
- data.activePowerUnit = UNIT_kW;
+ data.activePowerUnit = ElectricalUnit::UNIT_kW;
break;
case 3:
- data.activePowerUnit = UNIT_MW;
+ data.activePowerUnit = ElectricalUnit::UNIT_MW;
break;
}
@@ -477,16 +477,16 @@ bool SyncMachineForm::ValidateData()
return false;
switch(m_choiceReactivePower->GetSelection()) {
case 0:
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
break;
case 1:
- data.reactivePowerUnit = UNIT_VAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_var;
break;
case 2:
- data.reactivePowerUnit = UNIT_kVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_kvar;
break;
case 3:
- data.reactivePowerUnit = UNIT_MVAr;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
break;
}
@@ -497,16 +497,16 @@ bool SyncMachineForm::ValidateData()
return false;
switch(m_choiceMaxRectivePower->GetSelection()) {
case 0:
- data.maxReactiveUnit = UNIT_PU;
+ data.maxReactiveUnit = ElectricalUnit::UNIT_PU;
break;
case 1:
- data.maxReactiveUnit = UNIT_VAr;
+ data.maxReactiveUnit = ElectricalUnit::UNIT_var;
break;
case 2:
- data.maxReactiveUnit = UNIT_kVAr;
+ data.maxReactiveUnit = ElectricalUnit::UNIT_kvar;
break;
case 3:
- data.maxReactiveUnit = UNIT_MVAr;
+ data.maxReactiveUnit = ElectricalUnit::UNIT_Mvar;
break;
}
}
@@ -518,16 +518,16 @@ bool SyncMachineForm::ValidateData()
return false;
switch(m_choiceMinRectivePower->GetSelection()) {
case 0:
- data.minReactiveUnit = UNIT_PU;
+ data.minReactiveUnit = ElectricalUnit::UNIT_PU;
break;
case 1:
- data.minReactiveUnit = UNIT_VAr;
+ data.minReactiveUnit = ElectricalUnit::UNIT_var;
break;
case 2:
- data.minReactiveUnit = UNIT_kVAr;
+ data.minReactiveUnit = ElectricalUnit::UNIT_kvar;
break;
case 3:
- data.minReactiveUnit = UNIT_MVAr;
+ data.minReactiveUnit = ElectricalUnit::UNIT_Mvar;
break;
}
}
diff --git a/Project/SyncMotor.cpp b/Project/SyncMotor.cpp
index 716a432..7d8e869 100644
--- a/Project/SyncMotor.cpp
+++ b/Project/SyncMotor.cpp
@@ -56,40 +56,40 @@ SyncMotorElectricalData SyncMotor::GetPUElectricalData(double systemPowerBase)
// Active power
double activePower = GetValueFromUnit(data.activePower, data.activePowerUnit);
if(!m_online) activePower = 0.0;
- if(data.activePowerUnit == UNIT_PU) {
+ if(data.activePowerUnit == ElectricalUnit::UNIT_PU) {
if(data.useMachineBase) data.activePower = (activePower * machineBasePower) / systemPowerBase;
} else {
data.activePower = activePower / systemPowerBase;
}
- data.activePowerUnit = UNIT_PU;
+ data.activePowerUnit = ElectricalUnit::UNIT_PU;
// Reactive power
double reactivePower = GetValueFromUnit(data.reactivePower, data.reactivePowerUnit);
if(!m_online) reactivePower = 0.0;
- if(data.reactivePowerUnit == UNIT_PU) {
+ if(data.reactivePowerUnit == ElectricalUnit::UNIT_PU) {
if(data.useMachineBase) data.reactivePower = (reactivePower * machineBasePower) / systemPowerBase;
} else {
data.reactivePower = reactivePower / systemPowerBase;
}
- data.reactivePowerUnit = UNIT_PU;
+ data.reactivePowerUnit = ElectricalUnit::UNIT_PU;
// Max reactive power
double maxReactive = GetValueFromUnit(data.maxReactive, data.maxReactiveUnit);
- if(data.maxReactiveUnit == UNIT_PU) {
+ if(data.maxReactiveUnit == ElectricalUnit::UNIT_PU) {
if(data.useMachineBase) data.maxReactive = (maxReactive * machineBasePower) / systemPowerBase;
} else {
data.maxReactive = maxReactive / systemPowerBase;
}
- data.maxReactiveUnit = UNIT_PU;
+ data.maxReactiveUnit = ElectricalUnit::UNIT_PU;
// Min reactive power
double minReactive = GetValueFromUnit(data.minReactive, data.minReactiveUnit);
- if(data.minReactiveUnit == UNIT_PU) {
+ if(data.minReactiveUnit == ElectricalUnit::UNIT_PU) {
if(data.useMachineBase) data.minReactive = (minReactive * machineBasePower) / systemPowerBase;
} else {
data.minReactive = minReactive / systemPowerBase;
}
- data.minReactiveUnit = UNIT_PU;
+ data.minReactiveUnit = ElectricalUnit::UNIT_PU;
double baseVoltage = GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);
double systemBaseImpedance = (baseVoltage * baseVoltage) / systemPowerBase;
@@ -139,16 +139,16 @@ wxString SyncMotor::GetTipText() const
if(!m_online) activePower = 0.0;
tipText += _("\nP = ") + wxString::FromDouble(activePower, 5);
switch(m_electricalData.activePowerUnit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
tipText += _(" p.u.");
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
tipText += _(" W");
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
tipText += _(" kW");
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
tipText += _(" MW");
} break;
default:
@@ -158,16 +158,16 @@ wxString SyncMotor::GetTipText() const
if(!m_online) reactivePower = 0.0;
tipText += _("\nQ = ") + wxString::FromDouble(reactivePower, 5);
switch(m_electricalData.reactivePowerUnit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
tipText += _(" p.u.");
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
tipText += _(" VAr");
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
tipText += _(" kVAr");
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
tipText += _(" MVAr");
} break;
default:
@@ -191,23 +191,23 @@ rapidxml::xml_node<>* SyncMotor::SaveElement(rapidxml::xml_document<>& doc, rapi
XMLParser::SetNodeValue(doc, name, m_electricalData.name);
auto nominalPower = XMLParser::AppendNode(doc, electricalProp, "NominalPower");
XMLParser::SetNodeValue(doc, nominalPower, m_electricalData.nominalPower);
- XMLParser::SetNodeAttribute(doc, nominalPower, "UnitID", m_electricalData.nominalPowerUnit);
+ XMLParser::SetNodeAttribute(doc, nominalPower, "UnitID", static_cast<int>(m_electricalData.nominalPowerUnit));
auto activePower = XMLParser::AppendNode(doc, electricalProp, "ActivePower");
XMLParser::SetNodeValue(doc, activePower, m_electricalData.activePower);
- XMLParser::SetNodeAttribute(doc, activePower, "UnitID", m_electricalData.activePowerUnit);
+ XMLParser::SetNodeAttribute(doc, activePower, "UnitID", static_cast<int>(m_electricalData.activePowerUnit));
auto reactivePower = XMLParser::AppendNode(doc, electricalProp, "ReactivePower");
XMLParser::SetNodeValue(doc, reactivePower, m_electricalData.reactivePower);
- XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", m_electricalData.reactivePowerUnit);
+ XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", static_cast<int>(m_electricalData.reactivePowerUnit));
auto haveMaxReactive = XMLParser::AppendNode(doc, electricalProp, "HaveMaxReactive");
XMLParser::SetNodeValue(doc, haveMaxReactive, m_electricalData.haveMaxReactive);
auto maxReactive = XMLParser::AppendNode(doc, electricalProp, "MaxReactive");
XMLParser::SetNodeValue(doc, maxReactive, m_electricalData.maxReactive);
- XMLParser::SetNodeAttribute(doc, maxReactive, "UnitID", m_electricalData.maxReactiveUnit);
+ XMLParser::SetNodeAttribute(doc, maxReactive, "UnitID", static_cast<int>(m_electricalData.maxReactiveUnit));
auto haveMinReactive = XMLParser::AppendNode(doc, electricalProp, "HaveMinReactive");
XMLParser::SetNodeValue(doc, haveMinReactive, m_electricalData.haveMinReactive);
auto minReactive = XMLParser::AppendNode(doc, electricalProp, "MinReactive");
XMLParser::SetNodeValue(doc, minReactive, m_electricalData.minReactive);
- XMLParser::SetNodeAttribute(doc, minReactive, "UnitID", m_electricalData.minReactiveUnit);
+ XMLParser::SetNodeAttribute(doc, minReactive, "UnitID", static_cast<int>(m_electricalData.minReactiveUnit));
auto useMachineBase = XMLParser::AppendNode(doc, electricalProp, "UseMachineBase");
XMLParser::SetNodeValue(doc, useMachineBase, m_electricalData.useMachineBase);
diff --git a/Project/SyncMotor.h b/Project/SyncMotor.h
index 694aa90..3691a87 100644
--- a/Project/SyncMotor.h
+++ b/Project/SyncMotor.h
@@ -26,19 +26,19 @@ struct SyncMotorElectricalData {
// General
wxString name = "";
double nominalPower = 100.0;
- ElectricalUnit nominalPowerUnit = UNIT_MVA;
+ ElectricalUnit nominalPowerUnit = ElectricalUnit::UNIT_MVA;
double nominalVoltage = 13.8;
- ElectricalUnit nominalVoltageUnit = UNIT_kV;
+ ElectricalUnit nominalVoltageUnit = ElectricalUnit::UNIT_kV;
double activePower = 100.0;
- ElectricalUnit activePowerUnit = UNIT_MW;
+ ElectricalUnit activePowerUnit = ElectricalUnit::UNIT_MW;
double reactivePower = 0.0;
- ElectricalUnit reactivePowerUnit = UNIT_MVAr;
+ ElectricalUnit reactivePowerUnit = ElectricalUnit::UNIT_Mvar;
bool haveMaxReactive = false;
double maxReactive = 9999.0;
- ElectricalUnit maxReactiveUnit = UNIT_MVAr;
+ ElectricalUnit maxReactiveUnit = ElectricalUnit::UNIT_Mvar;
bool haveMinReactive = false;
double minReactive = -9999.0;
- ElectricalUnit minReactiveUnit = UNIT_MVAr;
+ ElectricalUnit minReactiveUnit = ElectricalUnit::UNIT_Mvar;
bool useMachineBase = true;
// Fault
diff --git a/Project/Text.cpp b/Project/Text.cpp
index 3a22c7a..ad844f0 100644
--- a/Project/Text.cpp
+++ b/Project/Text.cpp
@@ -176,7 +176,7 @@ void Text::UpdateText(double systemPowerBase)
if(bus) {
BusElectricalData data = bus->GetElectricalData();
double baseVoltage = data.nominalVoltage;
- if(data.nominalVoltageUnit == UNIT_kV) baseVoltage *= 1e3;
+ if(data.nominalVoltageUnit == ElectricalUnit::UNIT_kV) baseVoltage *= 1e3;
double baseCurrent = systemPowerBase / (std::sqrt(3.0) * baseVoltage);
switch(m_dataType) {
@@ -186,13 +186,13 @@ void Text::UpdateText(double systemPowerBase)
case DATA_VOLTAGE: {
double voltage = std::abs(data.voltage);
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(voltage, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_V: {
+ case ElectricalUnit::UNIT_V: {
SetText(wxString::FromDouble(voltage * baseVoltage, m_decimalPlaces) + " V");
} break;
- case UNIT_kV: {
+ case ElectricalUnit::UNIT_kV: {
SetText(wxString::FromDouble(voltage * baseVoltage / 1e3, m_decimalPlaces) + " kV");
} break;
default:
@@ -202,10 +202,10 @@ void Text::UpdateText(double systemPowerBase)
case DATA_ANGLE: {
double angle = std::arg(data.voltage);
switch(m_unit) {
- case UNIT_RADIAN: {
+ case ElectricalUnit::UNIT_RADIAN: {
SetText(wxString::FromDouble(angle, m_decimalPlaces) + " rad");
} break;
- case UNIT_DEGREE: {
+ case ElectricalUnit::UNIT_DEGREE: {
SetText(wxString::FromDouble(wxRadToDeg(angle), m_decimalPlaces) + (wxString)L'\u00B0');
} break;
default:
@@ -216,14 +216,14 @@ void Text::UpdateText(double systemPowerBase)
double faultCurrent[3] = {std::abs(data.faultCurrent[0]), std::abs(data.faultCurrent[1]),
std::abs(data.faultCurrent[2])};
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
wxString str =
"Ia = " + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + " p.u.";
str += "\nIb = " + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + " p.u.";
str += "\nIc = " + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + " p.u.";
SetText(str);
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
wxString str =
"Ia = " + wxString::FromDouble(faultCurrent[0] * baseCurrent, m_decimalPlaces) +
" A";
@@ -233,7 +233,7 @@ void Text::UpdateText(double systemPowerBase)
wxString::FromDouble(faultCurrent[2] * baseCurrent, m_decimalPlaces) + " A";
SetText(str);
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
wxString str =
"Ia = " +
wxString::FromDouble(faultCurrent[0] * baseCurrent / 1e3, m_decimalPlaces) + " kA";
@@ -253,14 +253,14 @@ void Text::UpdateText(double systemPowerBase)
double faultVoltage[3] = {std::abs(data.faultVoltage[0]), std::abs(data.faultVoltage[1]),
std::abs(data.faultVoltage[2])};
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
wxString str =
"Va = " + wxString::FromDouble(faultVoltage[0], m_decimalPlaces) + " p.u.";
str += "\nVb = " + wxString::FromDouble(faultVoltage[1], m_decimalPlaces) + " p.u.";
str += "\nVc = " + wxString::FromDouble(faultVoltage[2], m_decimalPlaces) + " p.u.";
SetText(str);
} break;
- case UNIT_V: {
+ case ElectricalUnit::UNIT_V: {
wxString str =
"Va = " + wxString::FromDouble(faultVoltage[0] * baseVoltage, m_decimalPlaces) +
" V";
@@ -270,7 +270,7 @@ void Text::UpdateText(double systemPowerBase)
wxString::FromDouble(faultVoltage[2] * baseVoltage, m_decimalPlaces) + " V";
SetText(str);
} break;
- case UNIT_kV: {
+ case ElectricalUnit::UNIT_kV: {
wxString str =
"Va = " +
wxString::FromDouble(faultVoltage[0] * baseVoltage / 1e3, m_decimalPlaces) + " kV";
@@ -288,17 +288,17 @@ void Text::UpdateText(double systemPowerBase)
} break;
case DATA_SC_POWER: {
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(data.scPower, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_VA: {
+ case ElectricalUnit::UNIT_VA: {
SetText(wxString::FromDouble(data.scPower * systemPowerBase, m_decimalPlaces) + " VA");
} break;
- case UNIT_kVA: {
+ case ElectricalUnit::UNIT_kVA: {
SetText(wxString::FromDouble(data.scPower * systemPowerBase / 1e3, m_decimalPlaces) +
" kVA");
} break;
- case UNIT_MVA: {
+ case ElectricalUnit::UNIT_MVA: {
SetText(wxString::FromDouble(data.scPower * systemPowerBase / 1e6, m_decimalPlaces) +
" MVA");
} break;
@@ -307,7 +307,7 @@ void Text::UpdateText(double systemPowerBase)
}
} break;
case DATA_PQ_THD: {
- SetText("THD = " + wxString::FromDouble(data.thd, m_decimalPlaces) + "\%");
+ SetText("THD = " + wxString::FromDouble(data.thd, m_decimalPlaces) + "%");
} break;
default:
break;
@@ -328,17 +328,17 @@ void Text::UpdateText(double systemPowerBase)
double activePower = data.activePower;
if(!syncGenerator->IsOnline()) activePower = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(activePower, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
SetText(wxString::FromDouble(activePower * systemPowerBase, m_decimalPlaces) + " W");
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
SetText(wxString::FromDouble(activePower * systemPowerBase / 1e3, m_decimalPlaces) +
" kW");
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
SetText(wxString::FromDouble(activePower * systemPowerBase / 1e6, m_decimalPlaces) +
" MW");
} break;
@@ -350,18 +350,18 @@ void Text::UpdateText(double systemPowerBase)
double reactivePower = data.reactivePower;
if(!syncGenerator->IsOnline()) reactivePower = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(reactivePower, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
SetText(wxString::FromDouble(reactivePower * systemPowerBase, m_decimalPlaces) +
" VAr");
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
SetText(wxString::FromDouble(reactivePower * systemPowerBase / 1e3, m_decimalPlaces) +
" kVAr");
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
SetText(wxString::FromDouble(reactivePower * systemPowerBase / 1e6, m_decimalPlaces) +
" MVAr");
} break;
@@ -373,14 +373,14 @@ void Text::UpdateText(double systemPowerBase)
double faultCurrent[3] = {std::abs(data.faultCurrent[0]), std::abs(data.faultCurrent[1]),
std::abs(data.faultCurrent[2])};
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
wxString str =
"Ia = " + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + " p.u.";
str += "\nIb = " + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + " p.u.";
str += "\nIc = " + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + " p.u.";
SetText(str);
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
wxString str =
"Ia = " + wxString::FromDouble(faultCurrent[0] * baseCurrent, m_decimalPlaces) +
" A";
@@ -390,7 +390,7 @@ void Text::UpdateText(double systemPowerBase)
wxString::FromDouble(faultCurrent[2] * baseCurrent, m_decimalPlaces) + " A";
SetText(str);
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
wxString str =
"Ia = " +
wxString::FromDouble(faultCurrent[0] * baseCurrent / 1e3, m_decimalPlaces) + " kA";
@@ -416,7 +416,7 @@ void Text::UpdateText(double systemPowerBase)
if(line) {
LineElectricalData data = line->GetElectricalData();
double baseVoltage = data.nominalVoltage;
- if(data.nominalVoltageUnit == UNIT_kV) baseVoltage *= 1e3;
+ if(data.nominalVoltageUnit == ElectricalUnit::UNIT_kV) baseVoltage *= 1e3;
double baseCurrent = systemPowerBase / (std::sqrt(3.0) * baseVoltage);
switch(m_dataType) {
case DATA_NAME: {
@@ -426,17 +426,17 @@ void Text::UpdateText(double systemPowerBase)
double activePF = std::real(data.powerFlow[m_direction]);
if(!line->IsOnline()) activePF = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(activePF, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
SetText(wxString::FromDouble(activePF * systemPowerBase, m_decimalPlaces) + " W");
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
SetText(wxString::FromDouble(activePF * systemPowerBase / 1e3, m_decimalPlaces) +
" kW");
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
SetText(wxString::FromDouble(activePF * systemPowerBase / 1e6, m_decimalPlaces) +
" MW");
} break;
@@ -448,17 +448,17 @@ void Text::UpdateText(double systemPowerBase)
double reactivePF = std::imag(data.powerFlow[m_direction]);
if(!line->IsOnline()) reactivePF = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(reactivePF, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
SetText(wxString::FromDouble(reactivePF * systemPowerBase, m_decimalPlaces) + " VAr");
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e3, m_decimalPlaces) +
" kVAr");
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e6, m_decimalPlaces) +
" MVAr");
} break;
@@ -470,16 +470,16 @@ void Text::UpdateText(double systemPowerBase)
double losses = std::abs(std::real(data.powerFlow[0]) + std::real(data.powerFlow[1]));
if(!line->IsOnline()) losses = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(losses, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
SetText(wxString::FromDouble(losses * systemPowerBase, m_decimalPlaces) + " W");
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
SetText(wxString::FromDouble(losses * systemPowerBase / 1e3, m_decimalPlaces) + " kW");
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
SetText(wxString::FromDouble(losses * systemPowerBase / 1e6, m_decimalPlaces) + " MW");
} break;
default:
@@ -490,13 +490,13 @@ void Text::UpdateText(double systemPowerBase)
double current = std::abs(data.current[m_direction]);
if(!line->IsOnline()) current = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(current, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
SetText(wxString::FromDouble(current * baseCurrent, m_decimalPlaces) + " A");
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
SetText(wxString::FromDouble(current * baseCurrent / 1e3, m_decimalPlaces) + " kA");
} break;
default:
@@ -509,14 +509,14 @@ void Text::UpdateText(double systemPowerBase)
std::abs(data.faultCurrent[m_direction][2])};
if(!line->IsOnline()) faultCurrent[0] = faultCurrent[1] = faultCurrent[2] = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
wxString str =
"Ia = " + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + " p.u.";
str += "\nIb = " + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + " p.u.";
str += "\nIc = " + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + " p.u.";
SetText(str);
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
wxString str =
"Ia = " + wxString::FromDouble(faultCurrent[0] * baseCurrent, m_decimalPlaces) +
" A";
@@ -526,7 +526,7 @@ void Text::UpdateText(double systemPowerBase)
wxString::FromDouble(faultCurrent[2] * baseCurrent, m_decimalPlaces) + " A";
SetText(str);
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
wxString str =
"Ia = " +
wxString::FromDouble(faultCurrent[0] * baseCurrent / 1e3, m_decimalPlaces) + " kA";
@@ -553,8 +553,8 @@ void Text::UpdateText(double systemPowerBase)
TransformerElectricalData data = transformer->GetElectricalData();
double baseVoltage[2] = {data.primaryNominalVoltage, data.secondaryNominalVoltage};
- if(data.primaryNominalVoltageUnit == UNIT_kV) baseVoltage[0] *= 1e3;
- if(data.secondaryNominalVoltageUnit == UNIT_kV) baseVoltage[1] *= 1e3;
+ if(data.primaryNominalVoltageUnit == ElectricalUnit::UNIT_kV) baseVoltage[0] *= 1e3;
+ if(data.secondaryNominalVoltageUnit == ElectricalUnit::UNIT_kV) baseVoltage[1] *= 1e3;
double baseCurrent[2] = {systemPowerBase / (std::sqrt(3.0) * baseVoltage[0]),
systemPowerBase / (std::sqrt(3.0) * baseVoltage[1])};
@@ -566,17 +566,17 @@ void Text::UpdateText(double systemPowerBase)
double activePF = std::real(data.powerFlow[m_direction]);
if(!transformer->IsOnline()) activePF = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(activePF, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
SetText(wxString::FromDouble(activePF * systemPowerBase, m_decimalPlaces) + " W");
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
SetText(wxString::FromDouble(activePF * systemPowerBase / 1e3, m_decimalPlaces) +
" kW");
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
SetText(wxString::FromDouble(activePF * systemPowerBase / 1e6, m_decimalPlaces) +
" MW");
} break;
@@ -588,17 +588,17 @@ void Text::UpdateText(double systemPowerBase)
double reactivePF = std::imag(data.powerFlow[m_direction]);
if(!transformer->IsOnline()) reactivePF = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(reactivePF, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
SetText(wxString::FromDouble(reactivePF * systemPowerBase, m_decimalPlaces) + " VAr");
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e3, m_decimalPlaces) +
" kVAr");
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e6, m_decimalPlaces) +
" MVAr");
} break;
@@ -610,16 +610,16 @@ void Text::UpdateText(double systemPowerBase)
double losses = std::abs(std::real(data.powerFlow[0]) + std::real(data.powerFlow[1]));
if(!transformer->IsOnline()) losses = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(losses, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
SetText(wxString::FromDouble(losses * systemPowerBase, m_decimalPlaces) + " W");
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
SetText(wxString::FromDouble(losses * systemPowerBase / 1e3, m_decimalPlaces) + " kW");
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
SetText(wxString::FromDouble(losses * systemPowerBase / 1e6, m_decimalPlaces) + " MW");
} break;
default:
@@ -630,14 +630,14 @@ void Text::UpdateText(double systemPowerBase)
double current = std::abs(data.current[m_direction]);
if(!transformer->IsOnline()) current = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(current, m_decimalPlaces) + " p.u.");
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
SetText(wxString::FromDouble(current * baseCurrent[m_direction], m_decimalPlaces) +
" A");
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
SetText(
wxString::FromDouble(current * baseCurrent[m_direction] / 1e3, m_decimalPlaces) +
" kA");
@@ -652,14 +652,14 @@ void Text::UpdateText(double systemPowerBase)
std::abs(data.faultCurrent[m_direction][2])};
if(!transformer->IsOnline()) faultCurrent[0] = faultCurrent[1] = faultCurrent[2] = 0.0;
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
wxString str =
"Ia = " + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + " p.u.";
str += "\nIb = " + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + " p.u.";
str += "\nIc = " + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + " p.u.";
SetText(str);
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
wxString str =
"Ia = " +
wxString::FromDouble(faultCurrent[0] * baseCurrent[m_direction], m_decimalPlaces) +
@@ -674,7 +674,7 @@ void Text::UpdateText(double systemPowerBase)
" A";
SetText(str);
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
wxString str = "Ia = " +
wxString::FromDouble(faultCurrent[0] * baseCurrent[m_direction] / 1e3,
m_decimalPlaces) +
@@ -714,17 +714,17 @@ void Text::UpdateText(double systemPowerBase)
} break;
case DATA_ACTIVE_POWER: {
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(sPower.real(), m_decimalPlaces) + " p.u.");
}
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
SetText(wxString::FromDouble(sPower.real() * systemPowerBase, m_decimalPlaces) + " W");
}
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e3, m_decimalPlaces) +
" kW");
}
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e6, m_decimalPlaces) +
" MW");
}
@@ -734,18 +734,18 @@ void Text::UpdateText(double systemPowerBase)
} break;
case DATA_REACTIVE_POWER: {
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(sPower.imag(), m_decimalPlaces) + " p.u.");
}
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
SetText(wxString::FromDouble(sPower.imag() * systemPowerBase, m_decimalPlaces) +
" VAr");
}
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e3, m_decimalPlaces) +
" kVAr");
}
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e6, m_decimalPlaces) +
" MVAr");
}
@@ -770,17 +770,17 @@ void Text::UpdateText(double systemPowerBase)
} break;
case DATA_ACTIVE_POWER: {
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(sPower.real(), m_decimalPlaces) + " p.u.");
}
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
SetText(wxString::FromDouble(sPower.real() * systemPowerBase, m_decimalPlaces) + " W");
}
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e3, m_decimalPlaces) +
" kW");
}
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e6, m_decimalPlaces) +
" MW");
}
@@ -790,18 +790,18 @@ void Text::UpdateText(double systemPowerBase)
} break;
case DATA_REACTIVE_POWER: {
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(sPower.imag(), m_decimalPlaces) + " p.u.");
}
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
SetText(wxString::FromDouble(sPower.imag() * systemPowerBase, m_decimalPlaces) +
" VAr");
}
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e3, m_decimalPlaces) +
" kVAr");
}
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e6, m_decimalPlaces) +
" MVAr");
}
@@ -826,17 +826,17 @@ void Text::UpdateText(double systemPowerBase)
} break;
case DATA_ACTIVE_POWER: {
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(sPower.real(), m_decimalPlaces) + " p.u.");
}
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
SetText(wxString::FromDouble(sPower.real() * systemPowerBase, m_decimalPlaces) + " W");
}
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e3, m_decimalPlaces) +
" kW");
}
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e6, m_decimalPlaces) +
" MW");
}
@@ -846,18 +846,18 @@ void Text::UpdateText(double systemPowerBase)
} break;
case DATA_REACTIVE_POWER: {
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(sPower.imag(), m_decimalPlaces) + " p.u.");
}
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
SetText(wxString::FromDouble(sPower.imag() * systemPowerBase, m_decimalPlaces) +
" VAr");
}
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e3, m_decimalPlaces) +
" kVAr");
}
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e6, m_decimalPlaces) +
" MVAr");
}
@@ -888,17 +888,17 @@ void Text::UpdateText(double systemPowerBase)
} break;
case DATA_REACTIVE_POWER: {
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(reativePower, m_decimalPlaces) + " p.u.");
}
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
SetText(wxString::FromDouble(reativePower * systemPowerBase, m_decimalPlaces) + " VAr");
}
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e3, m_decimalPlaces) +
" kVAr");
}
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e6, m_decimalPlaces) +
" MVAr");
}
@@ -929,17 +929,17 @@ void Text::UpdateText(double systemPowerBase)
} break;
case DATA_REACTIVE_POWER: {
switch(m_unit) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
SetText(wxString::FromDouble(reativePower, m_decimalPlaces) + " p.u.");
}
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
SetText(wxString::FromDouble(reativePower * systemPowerBase, m_decimalPlaces) + " VAr");
}
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e3, m_decimalPlaces) +
" kVAr");
}
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e6, m_decimalPlaces) +
" MVAr");
}
@@ -1004,7 +1004,7 @@ rapidxml::xml_node<>* Text::SaveElement(rapidxml::xml_document<>& doc, rapidxml:
auto dataType = XMLParser::AppendNode(doc, textProperties, "DataType");
XMLParser::SetNodeValue(doc, dataType, m_dataType);
auto dataUnit = XMLParser::AppendNode(doc, textProperties, "DataUnit");
- XMLParser::SetNodeValue(doc, dataUnit, m_unit);
+ XMLParser::SetNodeValue(doc, dataUnit, static_cast<int>(m_unit));
auto direction = XMLParser::AppendNode(doc, textProperties, "Direction");
XMLParser::SetNodeValue(doc, direction, m_direction);
auto decimalPlaces = XMLParser::AppendNode(doc, textProperties, "DecimalPlaces");
diff --git a/Project/TextForm.cpp b/Project/TextForm.cpp
index 30497fd..20d0873 100644
--- a/Project/TextForm.cpp
+++ b/Project/TextForm.cpp
@@ -230,13 +230,13 @@ bool TextForm::LoadChoices()
case DATA_VOLTAGE: {
m_choiceTextType->SetSelection(1);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_V: {
+ case ElectricalUnit::UNIT_V: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kV: {
+ case ElectricalUnit::UNIT_kV: {
m_choiceTextUnit->SetSelection(2);
} break;
default:
@@ -247,10 +247,10 @@ bool TextForm::LoadChoices()
case DATA_ANGLE: {
m_choiceTextType->SetSelection(2);
switch(m_text->GetUnit()) {
- case UNIT_DEGREE: {
+ case ElectricalUnit::UNIT_DEGREE: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_RADIAN: {
+ case ElectricalUnit::UNIT_RADIAN: {
m_choiceTextUnit->SetSelection(1);
} break;
default:
@@ -260,13 +260,13 @@ bool TextForm::LoadChoices()
case DATA_SC_CURRENT: {
m_choiceTextType->SetSelection(3);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
m_choiceTextUnit->SetSelection(2);
} break;
default:
@@ -276,13 +276,13 @@ bool TextForm::LoadChoices()
case DATA_SC_VOLTAGE: {
m_choiceTextType->SetSelection(4);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_V: {
+ case ElectricalUnit::UNIT_V: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kV: {
+ case ElectricalUnit::UNIT_kV: {
m_choiceTextUnit->SetSelection(2);
} break;
default:
@@ -292,16 +292,16 @@ bool TextForm::LoadChoices()
case DATA_SC_POWER: {
m_choiceTextType->SetSelection(5);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_VA: {
+ case ElectricalUnit::UNIT_VA: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kVA: {
+ case ElectricalUnit::UNIT_kVA: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MVA: {
+ case ElectricalUnit::UNIT_MVA: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -324,16 +324,16 @@ bool TextForm::LoadChoices()
case DATA_ACTIVE_POWER: {
m_choiceTextType->SetSelection(1);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -343,16 +343,16 @@ bool TextForm::LoadChoices()
case DATA_REACTIVE_POWER: {
m_choiceTextType->SetSelection(2);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -362,13 +362,13 @@ bool TextForm::LoadChoices()
case DATA_SC_CURRENT: {
m_choiceTextType->SetSelection(3);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
m_choiceTextUnit->SetSelection(2);
} break;
default:
@@ -388,16 +388,16 @@ bool TextForm::LoadChoices()
case DATA_PF_ACTIVE: {
m_choiceTextType->SetSelection(1);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -407,16 +407,16 @@ bool TextForm::LoadChoices()
case DATA_PF_REACTIVE: {
m_choiceTextType->SetSelection(2);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -426,16 +426,16 @@ bool TextForm::LoadChoices()
case DATA_PF_LOSSES: {
m_choiceTextType->SetSelection(3);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -445,13 +445,13 @@ bool TextForm::LoadChoices()
case DATA_PF_CURRENT: {
m_choiceTextType->SetSelection(4);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
m_choiceTextUnit->SetSelection(2);
} break;
default:
@@ -461,16 +461,16 @@ bool TextForm::LoadChoices()
case DATA_SC_CURRENT: {
m_choiceTextType->SetSelection(5);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -490,16 +490,16 @@ bool TextForm::LoadChoices()
case DATA_PF_ACTIVE: {
m_choiceTextType->SetSelection(1);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -509,16 +509,16 @@ bool TextForm::LoadChoices()
case DATA_PF_REACTIVE: {
m_choiceTextType->SetSelection(2);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -528,16 +528,16 @@ bool TextForm::LoadChoices()
case DATA_PF_LOSSES: {
m_choiceTextType->SetSelection(3);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -547,13 +547,13 @@ bool TextForm::LoadChoices()
case DATA_PF_CURRENT: {
m_choiceTextType->SetSelection(4);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
m_choiceTextUnit->SetSelection(2);
} break;
default:
@@ -563,13 +563,13 @@ bool TextForm::LoadChoices()
case DATA_SC_CURRENT: {
m_choiceTextType->SetSelection(5);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_A: {
+ case ElectricalUnit::UNIT_A: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kA: {
+ case ElectricalUnit::UNIT_kA: {
m_choiceTextUnit->SetSelection(2);
} break;
default:
@@ -589,16 +589,16 @@ bool TextForm::LoadChoices()
case DATA_ACTIVE_POWER: {
m_choiceTextType->SetSelection(1);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -608,16 +608,16 @@ bool TextForm::LoadChoices()
case DATA_REACTIVE_POWER: {
m_choiceTextType->SetSelection(2);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -651,16 +651,16 @@ bool TextForm::LoadChoices()
case DATA_REACTIVE_POWER: {
m_choiceTextType->SetSelection(1);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -680,16 +680,16 @@ bool TextForm::LoadChoices()
case DATA_ACTIVE_POWER: {
m_choiceTextType->SetSelection(1);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -699,16 +699,16 @@ bool TextForm::LoadChoices()
case DATA_REACTIVE_POWER: {
m_choiceTextType->SetSelection(2);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -728,16 +728,16 @@ bool TextForm::LoadChoices()
case DATA_ACTIVE_POWER: {
m_choiceTextType->SetSelection(1);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_W: {
+ case ElectricalUnit::UNIT_W: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kW: {
+ case ElectricalUnit::UNIT_kW: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MW: {
+ case ElectricalUnit::UNIT_MW: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -747,16 +747,16 @@ bool TextForm::LoadChoices()
case DATA_REACTIVE_POWER: {
m_choiceTextType->SetSelection(2);
switch(m_text->GetUnit()) {
- case UNIT_PU: {
+ case ElectricalUnit::UNIT_PU: {
m_choiceTextUnit->SetSelection(0);
} break;
- case UNIT_VAr: {
+ case ElectricalUnit::UNIT_var: {
m_choiceTextUnit->SetSelection(1);
} break;
- case UNIT_kVAr: {
+ case ElectricalUnit::UNIT_kvar: {
m_choiceTextUnit->SetSelection(2);
} break;
- case UNIT_MVAr: {
+ case ElectricalUnit::UNIT_Mvar: {
m_choiceTextUnit->SetSelection(3);
} break;
default:
@@ -1082,13 +1082,13 @@ void TextForm::UnitChoice()
case DATA_SC_VOLTAGE: {
switch(m_choiceTextUnit->GetSelection()) {
case 0: {
- m_text->SetUnit(UNIT_PU);
+ m_text->SetUnit(ElectricalUnit::UNIT_PU);
} break;
case 1: {
- m_text->SetUnit(UNIT_V);
+ m_text->SetUnit(ElectricalUnit::UNIT_V);
} break;
case 2: {
- m_text->SetUnit(UNIT_kV);
+ m_text->SetUnit(ElectricalUnit::UNIT_kV);
} break;
default:
break;
@@ -1097,10 +1097,10 @@ void TextForm::UnitChoice()
case DATA_ANGLE: {
switch(m_choiceTextUnit->GetSelection()) {
case 0: {
- m_text->SetUnit(UNIT_DEGREE);
+ m_text->SetUnit(ElectricalUnit::UNIT_DEGREE);
} break;
case 1: {
- m_text->SetUnit(UNIT_RADIAN);
+ m_text->SetUnit(ElectricalUnit::UNIT_RADIAN);
} break;
default:
break;
@@ -1110,13 +1110,13 @@ void TextForm::UnitChoice()
case DATA_PF_CURRENT: {
switch(m_choiceTextUnit->GetSelection()) {
case 0: {
- m_text->SetUnit(UNIT_PU);
+ m_text->SetUnit(ElectricalUnit::UNIT_PU);
} break;
case 1: {
- m_text->SetUnit(UNIT_A);
+ m_text->SetUnit(ElectricalUnit::UNIT_A);
} break;
case 2: {
- m_text->SetUnit(UNIT_kA);
+ m_text->SetUnit(ElectricalUnit::UNIT_kA);
} break;
default:
break;
@@ -1125,16 +1125,16 @@ void TextForm::UnitChoice()
case DATA_SC_POWER: {
switch(m_choiceTextUnit->GetSelection()) {
case 0: {
- m_text->SetUnit(UNIT_PU);
+ m_text->SetUnit(ElectricalUnit::UNIT_PU);
} break;
case 1: {
- m_text->SetUnit(UNIT_VA);
+ m_text->SetUnit(ElectricalUnit::UNIT_VA);
} break;
case 2: {
- m_text->SetUnit(UNIT_kVA);
+ m_text->SetUnit(ElectricalUnit::UNIT_kVA);
} break;
case 3: {
- m_text->SetUnit(UNIT_MVA);
+ m_text->SetUnit(ElectricalUnit::UNIT_MVA);
} break;
default:
break;
@@ -1145,16 +1145,16 @@ void TextForm::UnitChoice()
case DATA_PF_LOSSES: {
switch(m_choiceTextUnit->GetSelection()) {
case 0: {
- m_text->SetUnit(UNIT_PU);
+ m_text->SetUnit(ElectricalUnit::UNIT_PU);
} break;
case 1: {
- m_text->SetUnit(UNIT_W);
+ m_text->SetUnit(ElectricalUnit::UNIT_W);
} break;
case 2: {
- m_text->SetUnit(UNIT_kW);
+ m_text->SetUnit(ElectricalUnit::UNIT_kW);
} break;
case 3: {
- m_text->SetUnit(UNIT_MW);
+ m_text->SetUnit(ElectricalUnit::UNIT_MW);
} break;
default:
break;
@@ -1164,16 +1164,16 @@ void TextForm::UnitChoice()
case DATA_PF_REACTIVE: {
switch(m_choiceTextUnit->GetSelection()) {
case 0: {
- m_text->SetUnit(UNIT_PU);
+ m_text->SetUnit(ElectricalUnit::UNIT_PU);
} break;
case 1: {
- m_text->SetUnit(UNIT_VAr);
+ m_text->SetUnit(ElectricalUnit::UNIT_var);
} break;
case 2: {
- m_text->SetUnit(UNIT_kVAr);
+ m_text->SetUnit(ElectricalUnit::UNIT_kvar);
} break;
case 3: {
- m_text->SetUnit(UNIT_MVAr);
+ m_text->SetUnit(ElectricalUnit::UNIT_Mvar);
} break;
default:
break;
diff --git a/Project/Transformer.cpp b/Project/Transformer.cpp
index bd212d7..05c2c4c 100644
--- a/Project/Transformer.cpp
+++ b/Project/Transformer.cpp
@@ -379,13 +379,13 @@ void Transformer::UpdatePowerFlowArrowsPosition()
{
std::vector<wxPoint2DDouble> edges;
switch(m_pfDirection) {
- case PF_NONE: {
+ case PowerFlowDirection::PF_NONE: {
m_powerFlowArrow.clear();
} break;
- case PF_BUS1_TO_BUS2: {
+ case PowerFlowDirection::PF_BUS1_TO_BUS2 : {
for(int i = 1; i < (int)m_pointList.size() - 1; i++) { edges.push_back(m_pointList[i]); }
} break;
- case PF_BUS2_TO_BUS1: {
+ case PowerFlowDirection::PF_BUS2_TO_BUS1: {
for(int i = (int)m_pointList.size() - 2; i > 0; i--) { edges.push_back(m_pointList[i]); }
} break;
default:
@@ -490,10 +490,10 @@ wxString Transformer::GetTipText() const
wxString tipText = m_electricalData.name;
wxString primVoltage = StringFromDouble(m_electricalData.primaryNominalVoltage);
switch(m_electricalData.primaryNominalVoltageUnit) {
- case UNIT_V: {
+ case ElectricalUnit::UNIT_V: {
primVoltage += _(" V");
} break;
- case UNIT_kV: {
+ case ElectricalUnit::UNIT_kV: {
primVoltage += _(" kV");
} break;
default:
@@ -501,10 +501,10 @@ wxString Transformer::GetTipText() const
}
wxString secVoltage = StringFromDouble(m_electricalData.secondaryNominalVoltage);
switch(m_electricalData.secondaryNominalVoltageUnit) {
- case UNIT_V: {
+ case ElectricalUnit::UNIT_V: {
secVoltage += _(" V");
} break;
- case UNIT_kV: {
+ case ElectricalUnit::UNIT_kV: {
secVoltage += _(" kV");
} break;
default:
@@ -547,21 +547,21 @@ TransformerElectricalData Transformer::GetPUElectricalData(double systemBasePowe
// Resistance
double r = data.resistance;
- if(data.resistanceUnit == UNIT_PU) {
+ if(data.resistanceUnit == ElectricalUnit::UNIT_PU) {
if(data.useTransformerPower) data.resistance = (r * transformerBaseImpedance) / systemBaseImpedance;
} else {
data.resistance = r / systemBaseImpedance;
}
- data.resistanceUnit = UNIT_PU;
+ data.resistanceUnit = ElectricalUnit::UNIT_PU;
// Indutive reactance
double x = data.indReactance;
- if(data.indReactanceUnit == UNIT_PU) {
+ if(data.indReactanceUnit == ElectricalUnit::UNIT_PU) {
if(data.useTransformerPower) data.indReactance = (x * transformerBaseImpedance) / systemBaseImpedance;
} else {
data.indReactance = x / systemBaseImpedance;
}
- data.indReactanceUnit = UNIT_PU;
+ data.indReactanceUnit = ElectricalUnit::UNIT_PU;
// Fault
@@ -651,19 +651,19 @@ rapidxml::xml_node<>* Transformer::SaveElement(rapidxml::xml_document<>& doc, ra
XMLParser::SetNodeValue(doc, name, m_electricalData.name);
auto primaryNominalVoltage = XMLParser::AppendNode(doc, electricalProp, "PrimaryNominalVoltage");
XMLParser::SetNodeValue(doc, primaryNominalVoltage, m_electricalData.primaryNominalVoltage);
- XMLParser::SetNodeAttribute(doc, primaryNominalVoltage, "UnitID", m_electricalData.primaryNominalVoltageUnit);
+ XMLParser::SetNodeAttribute(doc, primaryNominalVoltage, "UnitID", static_cast<int>(m_electricalData.primaryNominalVoltageUnit));
auto secondaryNominalVoltage = XMLParser::AppendNode(doc, electricalProp, "SecondaryNominalVoltage");
XMLParser::SetNodeValue(doc, secondaryNominalVoltage, m_electricalData.secondaryNominalVoltage);
- XMLParser::SetNodeAttribute(doc, secondaryNominalVoltage, "UnitID", m_electricalData.secondaryNominalVoltageUnit);
+ XMLParser::SetNodeAttribute(doc, secondaryNominalVoltage, "UnitID", static_cast<int>(m_electricalData.secondaryNominalVoltageUnit));
auto nominalPower = XMLParser::AppendNode(doc, electricalProp, "NominalPower");
XMLParser::SetNodeValue(doc, nominalPower, m_electricalData.nominalPower);
- XMLParser::SetNodeAttribute(doc, nominalPower, "UnitID", m_electricalData.nominalPowerUnit);
+ XMLParser::SetNodeAttribute(doc, nominalPower, "UnitID", static_cast<int>(m_electricalData.nominalPowerUnit));
auto resistance = XMLParser::AppendNode(doc, electricalProp, "Resistance");
XMLParser::SetNodeValue(doc, resistance, m_electricalData.resistance);
- XMLParser::SetNodeAttribute(doc, resistance, "UnitID", m_electricalData.resistanceUnit);
+ XMLParser::SetNodeAttribute(doc, resistance, "UnitID", static_cast<int>(m_electricalData.resistanceUnit));
auto indReactance = XMLParser::AppendNode(doc, electricalProp, "IndReactance");
XMLParser::SetNodeValue(doc, indReactance, m_electricalData.indReactance);
- XMLParser::SetNodeAttribute(doc, indReactance, "UnitID", m_electricalData.indReactanceUnit);
+ XMLParser::SetNodeAttribute(doc, indReactance, "UnitID", static_cast<int>(m_electricalData.indReactanceUnit));
auto connection = XMLParser::AppendNode(doc, electricalProp, "Connection");
XMLParser::SetNodeValue(doc, connection, m_electricalData.connection);
auto turnsRatio = XMLParser::AppendNode(doc, electricalProp, "TurnsRatio");
diff --git a/Project/Transformer.h b/Project/Transformer.h
index 207f6d1..d1a6b05 100644
--- a/Project/Transformer.h
+++ b/Project/Transformer.h
@@ -38,16 +38,16 @@ struct TransformerElectricalData {
// General
wxString name = "";
double primaryNominalVoltage = 138.0;
- ElectricalUnit primaryNominalVoltageUnit = UNIT_kV;
+ ElectricalUnit primaryNominalVoltageUnit = ElectricalUnit::UNIT_kV;
double secondaryNominalVoltage = 138.0;
- ElectricalUnit secondaryNominalVoltageUnit = UNIT_kV;
+ ElectricalUnit secondaryNominalVoltageUnit = ElectricalUnit::UNIT_kV;
int baseVoltage = 0;
double nominalPower = 100.0;
- ElectricalUnit nominalPowerUnit = UNIT_MVA;
+ ElectricalUnit nominalPowerUnit = ElectricalUnit::UNIT_MVA;
double resistance = 0.0;
- ElectricalUnit resistanceUnit = UNIT_PU;
+ ElectricalUnit resistanceUnit = ElectricalUnit::UNIT_PU;
double indReactance = 1.0;
- ElectricalUnit indReactanceUnit = UNIT_PU;
+ ElectricalUnit indReactanceUnit = ElectricalUnit::UNIT_PU;
TransformerConnection connection = GWYE_GWYE;
double turnsRatio = 1.0;
double phaseShift = 0.0;
diff --git a/Project/Workspace.cpp b/Project/Workspace.cpp
index 9cd1bb6..af95fbf 100644
--- a/Project/Workspace.cpp
+++ b/Project/Workspace.cpp
@@ -160,9 +160,9 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event)
bool showNewElementForm = false;
bool clickOnSwitch = false;
- if(m_mode == MODE_INSERT_TEXT || m_mode == MODE_PASTE || m_mode == MODE_DRAG_PASTE) {
- m_mode = MODE_EDIT;
- } else if(m_mode == MODE_INSERT || m_mode == MODE_DRAG_INSERT || m_mode == MODE_DRAG_INSERT_TEXT) {
+ if(m_mode == WorkspaceMode::MODE_INSERT_TEXT || m_mode == WorkspaceMode::MODE_PASTE || m_mode == WorkspaceMode::MODE_DRAG_PASTE) {
+ m_mode = WorkspaceMode::MODE_EDIT;
+ } else if(m_mode == WorkspaceMode::MODE_INSERT || m_mode == WorkspaceMode::MODE_DRAG_INSERT || m_mode == WorkspaceMode::MODE_DRAG_INSERT_TEXT) {
// Get the last element inserted on the list.
newElement = *(m_elementList.end() - 1);
for(auto it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {
@@ -180,7 +180,7 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event)
ValidateElementsVoltages();
m_timer->Stop();
showNewElementForm = true;
- m_mode = MODE_EDIT;
+ m_mode = WorkspaceMode::MODE_EDIT;
}
}
}
@@ -201,7 +201,7 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event)
// Click in selected element node.
if(element->NodeContains(m_camera->ScreenToWorld(clickPoint)) != 0 && element->IsSelected()) {
- m_mode = MODE_MOVE_NODE;
+ m_mode = WorkspaceMode::MODE_MOVE_NODE;
m_disconnectedElement = true;
foundElement = true;
}
@@ -216,11 +216,11 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event)
}
// If pickbox contains the click, move the pickbox
if(element->PickboxContains(m_camera->ScreenToWorld(clickPoint))) {
- m_mode = MODE_MOVE_PICKBOX;
+ m_mode = WorkspaceMode::MODE_MOVE_PICKBOX;
clickPickbox = true;
}
// If didn't found a pickbox, move the element
- if(!clickPickbox) { m_mode = MODE_MOVE_ELEMENT; }
+ if(!clickPickbox) { m_mode = WorkspaceMode::MODE_MOVE_ELEMENT; }
}
// Click in a switch.
@@ -239,7 +239,7 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event)
if(text->Contains(m_camera->ScreenToWorld(clickPoint))) {
if(!foundElement) {
text->SetSelected();
- m_mode = MODE_MOVE_ELEMENT;
+ m_mode = WorkspaceMode::MODE_MOVE_ELEMENT;
foundElement = true;
}
}
@@ -247,7 +247,7 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event)
}
if(!foundElement) {
- m_mode = MODE_SELECTION_RECT;
+ m_mode = WorkspaceMode::MODE_SELECTION_RECT;
m_startSelRect = m_camera->ScreenToWorld(clickPoint);
}
@@ -346,7 +346,7 @@ void Workspace::OnLeftDoubleClick(wxMouseEvent& event)
void Workspace::OnRightClickDown(wxMouseEvent& event)
{
bool redraw = false;
- if(m_mode == MODE_EDIT) {
+ if(m_mode == WorkspaceMode::MODE_EDIT) {
for(auto it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {
Element* element = *it;
if(element->IsSelected()) {
@@ -385,7 +385,7 @@ void Workspace::OnLeftClickUp(wxMouseEvent& event)
Element* element = *it;
// The user was moving a pickbox.
- if(m_mode == MODE_MOVE_PICKBOX) {
+ if(m_mode == WorkspaceMode::MODE_MOVE_PICKBOX) {
// Catch only the element that have the pickbox shown.
if(element->IsPickboxShown()) {
// If the element is a bus, check if a node is outside.
@@ -406,13 +406,13 @@ void Workspace::OnLeftClickUp(wxMouseEvent& event)
}
}
- if(m_mode == MODE_SELECTION_RECT) {
+ if(m_mode == WorkspaceMode::MODE_SELECTION_RECT) {
if(element->Intersects(m_selectionRect)) {
element->SetSelected();
} else if(!event.ControlDown()) {
element->SetSelected(false);
}
- } else if(m_mode == MODE_MOVE_NODE) {
+ } else if(m_mode == WorkspaceMode::MODE_MOVE_NODE) {
if(element->IsSelected()) {
for(int i = 0; i < (int)m_elementList.size(); i++) {
Element* parent = m_elementList[i];
@@ -446,7 +446,7 @@ void Workspace::OnLeftClickUp(wxMouseEvent& event)
// Text element
for(auto it = m_textList.begin(); it != m_textList.end(); it++) {
Text* text = *it;
- if(m_mode == MODE_SELECTION_RECT) {
+ if(m_mode == WorkspaceMode::MODE_SELECTION_RECT) {
if(text->Intersects(m_selectionRect)) {
text->SetSelected();
} else if(!event.ControlDown()) {
@@ -463,7 +463,7 @@ void Workspace::OnLeftClickUp(wxMouseEvent& event)
}
if(!foundPickbox) { SetCursor(wxCURSOR_ARROW); }
- if(m_mode != MODE_INSERT) { m_mode = MODE_EDIT; }
+ if(m_mode != WorkspaceMode::MODE_INSERT) { m_mode = WorkspaceMode::MODE_EDIT; }
if(updateVoltages) { ValidateElementsVoltages(); }
@@ -481,27 +481,27 @@ void Workspace::OnMouseMotion(wxMouseEvent& event)
{
bool redraw = false;
switch(m_mode) {
- case MODE_INSERT: {
+ case WorkspaceMode::MODE_INSERT: {
Element* newElement = *(m_elementList.end() - 1); // Get the last element in the list.
newElement->SetPosition(m_camera->ScreenToWorld(event.GetPosition()));
redraw = true;
} break;
- case MODE_INSERT_TEXT: {
+ case WorkspaceMode::MODE_INSERT_TEXT: {
Text* newText = *(m_textList.end() - 1);
newText->SetPosition(m_camera->ScreenToWorld(event.GetPosition()));
redraw = true;
} break;
- case MODE_DRAG:
- case MODE_DRAG_INSERT:
- case MODE_DRAG_INSERT_TEXT:
- case MODE_DRAG_PASTE: {
+ case WorkspaceMode::MODE_DRAG:
+ case WorkspaceMode::MODE_DRAG_INSERT:
+ case WorkspaceMode::MODE_DRAG_INSERT_TEXT:
+ case WorkspaceMode::MODE_DRAG_PASTE: {
m_camera->SetTranslation(event.GetPosition());
redraw = true;
} break;
- case MODE_EDIT: {
+ case WorkspaceMode::MODE_EDIT: {
bool foundPickbox = false;
for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
Element* element = *it;
@@ -530,7 +530,7 @@ void Workspace::OnMouseMotion(wxMouseEvent& event)
}
} break;
- case MODE_MOVE_NODE: {
+ case WorkspaceMode::MODE_MOVE_NODE: {
for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
Element* element = *it;
if(element->IsSelected()) {
@@ -540,7 +540,7 @@ void Workspace::OnMouseMotion(wxMouseEvent& event)
}
} break;
- case MODE_MOVE_PICKBOX: {
+ case WorkspaceMode::MODE_MOVE_PICKBOX: {
for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) {
Element* element = *it;
if(element->IsSelected()) {
@@ -550,8 +550,8 @@ void Workspace::OnMouseMotion(wxMouseEvent& event)
}
} break;
- case MODE_MOVE_ELEMENT:
- case MODE_PASTE: {
+ case WorkspaceMode::MODE_MOVE_ELEMENT:
+ case WorkspaceMode::MODE_PASTE: {
for(auto it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {
Element* element = *it;
if(element->IsSelected()) {
@@ -574,7 +574,7 @@ void Workspace::OnMouseMotion(wxMouseEvent& event)
}
} break;
- case MODE_SELECTION_RECT: {
+ case WorkspaceMode::MODE_SELECTION_RECT: {
wxPoint2DDouble currentPos = m_camera->ScreenToWorld(event.GetPosition());
double x, y, w, h;
if(currentPos.m_x < m_startSelRect.m_x) {
@@ -608,17 +608,17 @@ void Workspace::OnMiddleDown(wxMouseEvent& event)
{
// Set to drag mode.
switch(m_mode) {
- case MODE_INSERT: {
- m_mode = MODE_DRAG_INSERT;
+ case WorkspaceMode::MODE_INSERT: {
+ m_mode = WorkspaceMode::MODE_DRAG_INSERT;
} break;
- case MODE_INSERT_TEXT: {
- m_mode = MODE_DRAG_INSERT_TEXT;
+ case WorkspaceMode::MODE_INSERT_TEXT: {
+ m_mode = WorkspaceMode::MODE_DRAG_INSERT_TEXT;
} break;
- case MODE_PASTE: {
- m_mode = MODE_DRAG_PASTE;
+ case WorkspaceMode::MODE_PASTE: {
+ m_mode = WorkspaceMode::MODE_DRAG_PASTE;
} break;
default: {
- m_mode = MODE_DRAG;
+ m_mode = WorkspaceMode::MODE_DRAG;
} break;
}
m_camera->StartTranslation(m_camera->ScreenToWorld(event.GetPosition()));
@@ -629,22 +629,22 @@ void Workspace::OnMiddleDown(wxMouseEvent& event)
void Workspace::OnMiddleUp(wxMouseEvent& event)
{
switch(m_mode) {
- case MODE_DRAG_INSERT: {
- m_mode = MODE_INSERT;
+ case WorkspaceMode::MODE_DRAG_INSERT: {
+ m_mode = WorkspaceMode::MODE_INSERT;
} break;
- case MODE_DRAG_INSERT_TEXT: {
- m_mode = MODE_INSERT_TEXT;
+ case WorkspaceMode::MODE_DRAG_INSERT_TEXT: {
+ m_mode = WorkspaceMode::MODE_INSERT_TEXT;
} break;
- case MODE_DRAG_PASTE: {
- m_mode = MODE_PASTE;
+ case WorkspaceMode::MODE_DRAG_PASTE: {
+ m_mode = WorkspaceMode::MODE_PASTE;
} break;
- case MODE_INSERT:
- case MODE_INSERT_TEXT:
- case MODE_PASTE: {
+ case WorkspaceMode::MODE_INSERT:
+ case WorkspaceMode::MODE_INSERT_TEXT:
+ case WorkspaceMode::MODE_PASTE: {
// Does nothing.
} break;
default: {
- m_mode = MODE_EDIT;
+ m_mode = WorkspaceMode::MODE_EDIT;
} break;
}
UpdateStatusBar();
@@ -665,20 +665,20 @@ void Workspace::OnScroll(wxMouseEvent& event)
void Workspace::OnKeyDown(wxKeyEvent& event)
{
bool insertingElement = false;
- if(m_mode == MODE_INSERT || m_mode == MODE_INSERT_TEXT) insertingElement = true;
+ if(m_mode == WorkspaceMode::MODE_INSERT || m_mode == WorkspaceMode::MODE_INSERT_TEXT) insertingElement = true;
char key = event.GetUnicodeKey();
if(key != WXK_NONE) {
switch(key) {
case WXK_ESCAPE: // Cancel operations.
{
- if(m_mode == MODE_INSERT) {
+ if(m_mode == WorkspaceMode::MODE_INSERT) {
m_elementList.pop_back(); // Removes the last element being inserted.
- m_mode = MODE_EDIT;
+ m_mode = WorkspaceMode::MODE_EDIT;
Redraw();
- } else if(m_mode == MODE_INSERT_TEXT) {
+ } else if(m_mode == WorkspaceMode::MODE_INSERT_TEXT) {
m_textList.pop_back();
- m_mode = MODE_EDIT;
+ m_mode = WorkspaceMode::MODE_EDIT;
Redraw();
}
} break;
@@ -690,7 +690,7 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
if(!insertingElement) {
Text* newBus = new Text(m_camera->ScreenToWorld(event.GetPosition()));
m_textList.push_back(newBus);
- m_mode = MODE_INSERT_TEXT;
+ m_mode = WorkspaceMode::MODE_INSERT_TEXT;
m_statusBar->SetStatusText(_("Insert Text: Click to insert, ESC to cancel."));
Redraw();
}
@@ -709,7 +709,7 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
wxString::Format(_("Bus %d"), GetElementNumber(ID_BUS)));
IncrementElementNumber(ID_BUS);
m_elementList.push_back(newBus);
- m_mode = MODE_INSERT;
+ m_mode = WorkspaceMode::MODE_INSERT;
m_statusBar->SetStatusText(_("Insert Bus: Click to insert, ESC to cancel."));
Redraw();
}
@@ -720,13 +720,13 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
Load* newLoad = new Load(wxString::Format(_("Load %d"), GetElementNumber(ID_LOAD)));
IncrementElementNumber(ID_LOAD);
m_elementList.push_back(newLoad);
- m_mode = MODE_INSERT;
+ m_mode = WorkspaceMode::MODE_INSERT;
m_statusBar->SetStatusText(_("Insert Load: Click on a buses, ESC to cancel."));
} else if(!event.ControlDown() && !event.ShiftDown()) { // Insert a power line.
Line* newLine = new Line(wxString::Format(_("Line %d"), GetElementNumber(ID_LINE)));
IncrementElementNumber(ID_LINE);
m_elementList.push_back(newLine);
- m_mode = MODE_INSERT;
+ m_mode = WorkspaceMode::MODE_INSERT;
m_statusBar->SetStatusText(_("Insert Line: Click on two buses, ESC to cancel."));
}
Redraw();
@@ -740,7 +740,7 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
new Transformer(wxString::Format(_("Transformer %d"), GetElementNumber(ID_TRANSFORMER)));
IncrementElementNumber(ID_TRANSFORMER);
m_elementList.push_back(newTransformer);
- m_mode = MODE_INSERT;
+ m_mode = WorkspaceMode::MODE_INSERT;
m_statusBar->SetStatusText(_("Insert Transformer: Click on two buses, ESC to cancel."));
Redraw();
}
@@ -752,7 +752,7 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
new SyncGenerator(wxString::Format(_("Generator %d"), GetElementNumber(ID_SYNCGENERATOR)));
IncrementElementNumber(ID_SYNCGENERATOR);
m_elementList.push_back(newGenerator);
- m_mode = MODE_INSERT;
+ m_mode = WorkspaceMode::MODE_INSERT;
m_statusBar->SetStatusText(_("Insert Generator: Click on a buses, ESC to cancel."));
Redraw();
}
@@ -764,7 +764,7 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
new Inductor(wxString::Format(_("Inductor %d"), GetElementNumber(ID_INDUCTOR)));
IncrementElementNumber(ID_INDUCTOR);
m_elementList.push_back(newInductor);
- m_mode = MODE_INSERT;
+ m_mode = WorkspaceMode::MODE_INSERT;
m_statusBar->SetStatusText(_("Insert Inductor: Click on a buses, ESC to cancel."));
} else // Insert an induction motor.
{
@@ -772,7 +772,7 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
new IndMotor(wxString::Format(_("Induction motor %d"), GetElementNumber(ID_INDMOTOR)));
IncrementElementNumber(ID_INDMOTOR);
m_elementList.push_back(newIndMotor);
- m_mode = MODE_INSERT;
+ m_mode = WorkspaceMode::MODE_INSERT;
m_statusBar->SetStatusText(_("Insert Induction Motor: Click on a buses, ESC to cancel."));
}
Redraw();
@@ -785,7 +785,7 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
new SyncMotor(wxString::Format(_("Synchronous condenser %d"), GetElementNumber(ID_SYNCMOTOR)));
IncrementElementNumber(ID_SYNCMOTOR);
m_elementList.push_back(newSyncCondenser);
- m_mode = MODE_INSERT;
+ m_mode = WorkspaceMode::MODE_INSERT;
m_statusBar->SetStatusText(_("Insert Synchronous Condenser: Click on a buses, ESC to cancel."));
Redraw();
}
@@ -797,7 +797,7 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
new Capacitor(wxString::Format(_("Capacitor %d"), GetElementNumber(ID_CAPACITOR)));
IncrementElementNumber(ID_CAPACITOR);
m_elementList.push_back(newCapacitor);
- m_mode = MODE_INSERT;
+ m_mode = WorkspaceMode::MODE_INSERT;
m_statusBar->SetStatusText(_("Insert Capacitor: Click on a buses, ESC to cancel."));
Redraw();
} else if(event.GetModifiers() == wxMOD_CONTROL) { // Copy.
@@ -812,7 +812,7 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
wxString::Format(_("Harmonic Current %d"), GetElementNumber(ID_HARMCURRENT)));
IncrementElementNumber(ID_HARMCURRENT);
m_elementList.push_back(newHarmCurrent);
- m_mode = MODE_INSERT;
+ m_mode = WorkspaceMode::MODE_INSERT;
m_statusBar->SetStatusText(
_("Insert Harmonic Current Source: Click on a buses, ESC to cancel."));
}
@@ -836,27 +836,27 @@ void Workspace::OnKeyDown(wxKeyEvent& event)
void Workspace::UpdateStatusBar()
{
switch(m_mode) {
- case MODE_DRAG: {
+ case WorkspaceMode::MODE_DRAG: {
m_statusBar->SetStatusText(_("MODE: DRAG"), 1);
} break;
- case MODE_PASTE:
- case MODE_DRAG_PASTE: {
+ case WorkspaceMode::MODE_PASTE:
+ case WorkspaceMode::MODE_DRAG_PASTE: {
m_statusBar->SetStatusText(_("MODE: PASTE"), 1);
}
- case MODE_INSERT:
- case MODE_INSERT_TEXT:
- case MODE_DRAG_INSERT:
- case MODE_DRAG_INSERT_TEXT: {
+ case WorkspaceMode::MODE_INSERT:
+ case WorkspaceMode::MODE_INSERT_TEXT:
+ case WorkspaceMode::MODE_DRAG_INSERT:
+ case WorkspaceMode::MODE_DRAG_INSERT_TEXT: {
m_statusBar->SetStatusText(_("MODE: INSERT"), 1);
} break;
- case MODE_MOVE_ELEMENT:
- case MODE_MOVE_PICKBOX:
- case MODE_MOVE_NODE:
- case MODE_SELECTION_RECT:
- case MODE_EDIT: {
+ case WorkspaceMode::MODE_MOVE_ELEMENT:
+ case WorkspaceMode::MODE_MOVE_PICKBOX:
+ case WorkspaceMode::MODE_MOVE_NODE:
+ case WorkspaceMode::MODE_SELECTION_RECT:
+ case WorkspaceMode::MODE_EDIT: {
m_statusBar->SetStatusText(wxT(""));
m_statusBar->SetStatusText(_("MODE: EDIT"), 1);
} break;
@@ -1131,9 +1131,9 @@ bool Workspace::RunPowerFlow()
{
auto simProp = m_properties->GetSimulationPropertiesData();
double basePower = simProp.basePower;
- if(simProp.basePowerUnit == UNIT_MVA)
+ if(simProp.basePowerUnit == ElectricalUnit::UNIT_MVA)
basePower *= 1e6;
- else if(simProp.basePowerUnit == UNIT_kVA)
+ else if(simProp.basePowerUnit == ElectricalUnit::UNIT_kVA)
basePower *= 1e3;
PowerFlow pf(GetElementList());
bool result = false;
@@ -1172,9 +1172,9 @@ bool Workspace::UpdateTextElements()
{
bool isTexturesOK = true;
double basePower = m_properties->GetSimulationPropertiesData().basePower;
- if(m_properties->GetSimulationPropertiesData().basePowerUnit == UNIT_kVA)
+ if(m_properties->GetSimulationPropertiesData().basePowerUnit == ElectricalUnit::UNIT_kVA)
basePower *= 1e3;
- else if(m_properties->GetSimulationPropertiesData().basePowerUnit == UNIT_MVA)
+ else if(m_properties->GetSimulationPropertiesData().basePowerUnit == ElectricalUnit::UNIT_MVA)
basePower *= 1e6;
for(auto it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {
Text* text = *it;
@@ -1334,7 +1334,7 @@ bool Workspace::Paste()
}
UpdateElementsID();
- m_mode = MODE_PASTE;
+ m_mode = WorkspaceMode::MODE_PASTE;
m_statusBar->SetStatusText(_("Click to paste."));
UpdateStatusBar();
Redraw();
@@ -1373,7 +1373,7 @@ void Workspace::OnTimer(wxTimerEvent& event)
m_tipWindow->Close();
m_tipWindow = NULL;
}
- if(m_mode == MODE_EDIT) {
+ if(m_mode == WorkspaceMode::MODE_EDIT) {
for(auto it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {
Element* element = *it;
if(element->Contains(m_camera->GetMousePosition())) {
@@ -1497,7 +1497,7 @@ bool Workspace::RunStability()
ElementPlotData plotData;
plotData.SetName(_("Simulation parameters"));
- plotData.SetCurveType(ElementPlotData::CT_TEST);
+ plotData.SetCurveType(ElementPlotData::CurveType::CT_TEST);
plotData.AddData(stability.GetIterationVector(), _("Iterations number"));
plotDataList.push_back(plotData);
@@ -1547,9 +1547,9 @@ bool Workspace::RunHarmonicDistortion()
{
auto simProp = m_properties->GetSimulationPropertiesData();
double basePower = simProp.basePower;
- if(simProp.basePowerUnit == UNIT_MVA)
+ if(simProp.basePowerUnit == ElectricalUnit::UNIT_MVA)
basePower *= 1e6;
- else if(simProp.basePowerUnit == UNIT_kVA)
+ else if(simProp.basePowerUnit == ElectricalUnit::UNIT_kVA)
basePower *= 1e3;
if(!RunPowerFlow()) return false;
PowerQuality pq(GetElementList());
@@ -1584,9 +1584,9 @@ bool Workspace::RunFrequencyResponse()
auto simProp = m_properties->GetSimulationPropertiesData();
double basePower = simProp.basePower;
- if(simProp.basePowerUnit == UNIT_MVA)
+ if(simProp.basePowerUnit == ElectricalUnit::UNIT_MVA)
basePower *= 1e6;
- else if(simProp.basePowerUnit == UNIT_kVA)
+ else if(simProp.basePowerUnit == ElectricalUnit::UNIT_kVA)
basePower *= 1e3;
PowerQuality pq(GetElementList());
bool result = pq.CalculateFrequencyResponse(simProp.stabilityFrequency, data.initFreq, data.finalFreq,
@@ -1600,7 +1600,7 @@ bool Workspace::RunFrequencyResponse()
for(auto it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {
PowerElement* element = *it;
ElementPlotData plotData;
- if(element->GetPlotData(plotData, FREQRESPONSE)) plotDataList.push_back(plotData);
+ if(element->GetPlotData(plotData, PlotStudy::FREQRESPONSE)) plotDataList.push_back(plotData);
}
ChartView* cView = new ChartView(this, plotDataList, pq.GetFrequencies());
diff --git a/Project/Workspace.h b/Project/Workspace.h
index b397db9..deac1e4 100644
--- a/Project/Workspace.h
+++ b/Project/Workspace.h
@@ -20,7 +20,7 @@
#ifdef _MSC_VER
#include <windows.h>
-#endif
+#endif // _MSC_VER
#include <GL/gl.h>
#include <GL/glu.h>
@@ -90,7 +90,7 @@ enum ElementID {
class Workspace : public WorkspaceBase
{
public:
- enum WorkspaceMode {
+ enum class WorkspaceMode : int {
MODE_EDIT = 0,
MODE_MOVE_ELEMENT,
MODE_MOVE_PICKBOX,
@@ -182,7 +182,7 @@ protected:
wxTipWindow* m_tipWindow = NULL;
wxString m_name;
- WorkspaceMode m_mode = MODE_EDIT;
+ WorkspaceMode m_mode = WorkspaceMode::MODE_EDIT;
std::vector<PowerElement*> m_elementList;
int m_elementNumber[NUM_ELEMENTS];
diff --git a/Project/main.cpp b/Project/main.cpp
index c4b0dc6..a00645c 100644
--- a/Project/main.cpp
+++ b/Project/main.cpp
@@ -1,3 +1,7 @@
+#ifdef __INTELLISENSE__
+#pragma diag_suppress 102
+#endif
+
#include <wx/app.h>
#include <wx/cmdline.h>
#include <wx/event.h>