拓扑解析也完成了,虽然用了一些dirty的方法。

Signed-off-by: facat@lab.com <facat@lab.com>
This commit is contained in:
facat@lab.com 2014-12-25 11:44:46 +08:00
parent 14476a7939
commit 9a70026cf3
7 changed files with 39 additions and 2 deletions

View File

@ -37,6 +37,11 @@ bool ElementHashtable::child(QXmlStreamReader &reader)
pointer=new Breaker(this); pointer=new Breaker(this);
pointer->parse(reader); pointer->parse(reader);
} }
if(elementName=="Substation")
{
pointer=new Substation(this);
pointer->parse(reader);
}
// if(elementName=="Compensator") // if(elementName=="Compensator")
// { // {
// pointer=new Compensator(this); // pointer=new Compensator(this);
@ -80,7 +85,7 @@ bool ElementHashtable::GoPath()
// if(p->getName()=="ACLineSegment"){ // if(p->getName()=="ACLineSegment"){
// std::cout<<p->getID().toStdString()<<std::endl; // std::cout<<p->getID().toStdString()<<std::endl;
// } // }
if(p->getName()=="ACLineSegment" && p->getID()=="AC-456491") if(p->getName()=="ACLineSegment" && p->getID()=="AC-671400")
{ {
ACLineSegment *ac=static_cast<ACLineSegment *>(p);//BusbarSection也就是线路头节点 ACLineSegment *ac=static_cast<ACLineSegment *>(p);//BusbarSection也就是线路头节点
QString acTerminal=ac->getTerminalB(); QString acTerminal=ac->getTerminalB();

View File

@ -36,11 +36,18 @@ bool PowerTransformer::derivedParse(QXmlStreamReader &reader)
return true; return true;
} }
QString PowerTransformer::getEquipmentMemberOf_EquipmentContainer()
{
return this->equipmentContainer;
}
QString PowerTransformer::getNamingDescription() QString PowerTransformer::getNamingDescription()
{ {
return this->namingDescription; return this->namingDescription;
} }
bool PowerTransformer::parse(QXmlStreamReader &reader) bool PowerTransformer::parse(QXmlStreamReader &reader)
{ {
return this->parseBasicInfo(reader); return this->parseBasicInfo(reader);

View File

@ -8,6 +8,7 @@ public:
explicit PowerTransformer(QObject *parent = 0); explicit PowerTransformer(QObject *parent = 0);
virtual bool parse(QXmlStreamReader& reader); virtual bool parse(QXmlStreamReader& reader);
QString getNamingDescription(); QString getNamingDescription();
QString getEquipmentMemberOf_EquipmentContainer();
protected: protected:
QString terminalA; QString terminalA;
QString terminalB; QString terminalB;
@ -16,6 +17,7 @@ protected:
virtual bool derivedParse(QXmlStreamReader& reader); virtual bool derivedParse(QXmlStreamReader& reader);
private: private:
bool isTerminalA; bool isTerminalA;
// QString equipmentMemberOf_EquipmentContainer;
}; };
#endif // POWERTRANSFORMER_H #endif // POWERTRANSFORMER_H

View File

@ -23,3 +23,9 @@ bool Substation::derivedParse(QXmlStreamReader& reader)
} }
return true; return true;
} }
QString Substation::getSubstationMemberOf_Feeder()
{
return this->substationMemberOf_Feeder;
}

View File

@ -7,6 +7,7 @@ class Substation:public BasicElementInfo
public: public:
explicit Substation(QObject *parent = 0); explicit Substation(QObject *parent = 0);
virtual bool parse(QXmlStreamReader& reader); virtual bool parse(QXmlStreamReader& reader);
QString getSubstationMemberOf_Feeder();
protected: protected:
virtual bool derivedParse(QXmlStreamReader& reader); virtual bool derivedParse(QXmlStreamReader& reader);
QString namingDescription; QString namingDescription;

View File

@ -44,7 +44,6 @@ bool TopologyRecorder::startWithNode(const QString& node)
// std::cout<<"can not find "<<acID.toStdString()<<std::endl;//@1 // std::cout<<"can not find "<<acID.toStdString()<<std::endl;//@1
continue; continue;
} }
// if(AC->getNamingDescription()=="")
terminalA=AC->getTerminalA(); terminalA=AC->getTerminalA();
terminalB=AC->getTerminalB(); terminalB=AC->getTerminalB();
std::cout<<"find"<<AC->getID().toStdString()<<std::endl; std::cout<<"find"<<AC->getID().toStdString()<<std::endl;
@ -85,6 +84,22 @@ bool TopologyRecorder::startWithNode(const QString& node)
QString tfID=ce; QString tfID=ce;
PowerTransformer *tf=static_cast<PowerTransformer *>(ht[tfID]); PowerTransformer *tf=static_cast<PowerTransformer *>(ht[tfID]);
std::cout<<"TF"<<tf->getNamingDescription().toStdString()<<std::endl; std::cout<<"TF"<<tf->getNamingDescription().toStdString()<<std::endl;
//判断一下这个变压器是不是我们需要的
QString equipmentContainer;
equipmentContainer=tf->getEquipmentMemberOf_EquipmentContainer();
Substation *sfd=static_cast<Substation *>(ht[equipmentContainer]);
if(sfd==NULL)
{
std::cout<<"can not find"<<equipmentContainer.toStdString()<<std::endl;
}
else
{
QString feederID=sfd->getSubstationMemberOf_Feeder();
if(feederID!="FD-2004")
{
std::cout<<tf->getNamingDescription().toStdString()<<"not belong"<<std::endl;
}
}
// foundCate=true; // foundCate=true;
} }
if(foundCate) if(foundCate)

View File

@ -10,6 +10,7 @@
#include "nodetoterminal.h" #include "nodetoterminal.h"
#include "terminal.h" #include "terminal.h"
#include "powertransformer.h" #include "powertransformer.h"
#include "substation.h"
class TopologyRecorder class TopologyRecorder
{ {
public: public: