From 95f61a7cad71c45c9e27af5c6f4bc5d64d5ecc45 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Fri, 5 Jan 2018 20:04:28 -0200 Subject: Some power element file hand. organized --- Project/Capacitor.cpp | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'Project/Capacitor.cpp') diff --git a/Project/Capacitor.cpp b/Project/Capacitor.cpp index 4f7491f..0378506 100644 --- a/Project/Capacitor.cpp +++ b/Project/Capacitor.cpp @@ -15,8 +15,8 @@ * along with this program. If not, see . */ -#include "ReactiveShuntElementForm.h" #include "Capacitor.h" +#include "ReactiveShuntElementForm.h" Capacitor::Capacitor() : Shunt() {} Capacitor::Capacitor(wxString name) : Shunt() { m_electricalData.name = name; } @@ -217,3 +217,43 @@ wxString Capacitor::GetTipText() const return tipText; } + +void Capacitor::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode) +{ + auto elementNode = XMLParser::AppendNode(doc, elementListNode, "Capacitor"); + XMLParser::SetNodeAttribute(doc, elementNode, "ID", m_elementID); + + SaveCADProperties(doc, elementNode); + + auto electricalProp = XMLParser::AppendNode(doc, elementNode, "ElectricalProperties"); + auto isOnline = XMLParser::AppendNode(doc, electricalProp, "IsOnline"); + XMLParser::SetNodeValue(doc, isOnline, m_online); + auto name = XMLParser::AppendNode(doc, electricalProp, "Name"); + 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); + + SaveSwitchingData(doc, electricalProp); +} + +bool Capacitor::OpenElement(rapidxml::xml_node<>* elementNode, std::vector parentList) +{ + if(!OpenCADProperties(elementNode, parentList)) return false; + + auto electricalProp = elementNode->first_node("ElectricalProperties"); + if(!electricalProp) return false; + + SetOnline(XMLParser::GetNodeValueInt(electricalProp, "IsOnline")); + m_electricalData.name = electricalProp->first_node("Name")->value(); + m_electricalData.reactivePower = XMLParser::GetNodeValueDouble(electricalProp, "ReactivePower"); + m_electricalData.reactivePowerUnit = + static_cast(XMLParser::GetAttributeValueInt(electricalProp, "ReactivePower", "UnitID")); + + if(!OpenSwitchingData(electricalProp)) return false; + + if(m_swData.swTime.size() != 0) SetDynamicEvent(true); + + m_inserted = true; + return true; +} -- cgit From c11a42ee83fcf535557d4f2cc259efae2da1b7ff Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Mon, 8 Jan 2018 20:07:47 -0200 Subject: File handling and control initialization organized --- Project/Capacitor.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Project/Capacitor.cpp') diff --git a/Project/Capacitor.cpp b/Project/Capacitor.cpp index 0378506..76dc3fd 100644 --- a/Project/Capacitor.cpp +++ b/Project/Capacitor.cpp @@ -218,7 +218,7 @@ wxString Capacitor::GetTipText() const return tipText; } -void Capacitor::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode) +rapidxml::xml_node<>* Capacitor::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode) { auto elementNode = XMLParser::AppendNode(doc, elementListNode, "Capacitor"); XMLParser::SetNodeAttribute(doc, elementNode, "ID", m_elementID); @@ -235,6 +235,8 @@ void Capacitor::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* XMLParser::SetNodeAttribute(doc, reactivePower, "UnitID", m_electricalData.reactivePowerUnit); SaveSwitchingData(doc, electricalProp); + + return elementNode; } bool Capacitor::OpenElement(rapidxml::xml_node<>* elementNode, std::vector parentList) @@ -251,7 +253,6 @@ bool Capacitor::OpenElement(rapidxml::xml_node<>* elementNode, std::vector(XMLParser::GetAttributeValueInt(electricalProp, "ReactivePower", "UnitID")); if(!OpenSwitchingData(electricalProp)) return false; - if(m_swData.swTime.size() != 0) SetDynamicEvent(true); m_inserted = true; -- cgit