From 5b9625f7087a81bfc4de373e0e9c908f9081fa0d Mon Sep 17 00:00:00 2001 From: "dmy@lab" Date: Tue, 20 Jan 2015 15:56:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=8A=E7=BD=91=E6=9E=B6=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E5=88=B0=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: dmy@lab --- testHasttable/cimexporter.cpp | 144 ++++++++++++++++---------- testHasttable/cimexporter.h | 3 + testHasttable/element/line.cpp | 1 + testHasttable/element/line.h | 1 + testHasttable/element/transformer.cpp | 5 +- testHasttable/element/transformer.h | 1 + testHasttable/elementhashtable.cpp | 7 +- testHasttable/elementhashtable.h | 2 +- testHasttable/task.cpp | 1 + 9 files changed, 104 insertions(+), 61 deletions(-) diff --git a/testHasttable/cimexporter.cpp b/testHasttable/cimexporter.cpp index 095fb09..cd526ea 100644 --- a/testHasttable/cimexporter.cpp +++ b/testHasttable/cimexporter.cpp @@ -33,70 +33,102 @@ void CIMExporter::add(const QPair& fromTo,Transformer* tf) void CIMExporter::exportTo(const QString& path) { - //先给所有节点都编号 - this->idToNumber(this->line); - this->idToNumber(this->sw); - this->idToNumber(this->tf); - //开始按要求输出 - //先输出线路 -// for(QList::iterator ite=this->line.begin(); -// ite!=this->line.end(); -// ite++) -// { -// LineStru l=*ite; -// std::cout<r<<","<x<<","<g1<<","<g2<loadDir); - QStringList files; - files=recurseDir.getFiles(); - //只取文件名 - QStringList baseNames; - foreach(QString file,files) + //输出到文件 + QFile fd(path); + if(fd.open(QFile::WriteOnly)) { - QFileInfo fileInfo(file); - baseNames<::iterator ite=this->tf.begin(); - ite!=this->tf.end(); - ite++) - { - PowerTransformer *tf=ite->tf->getTF(); - QString subID=tf->getEquipmentMemberOf_EquipmentContainer();//所属Substation的ID - Substation *sub=static_cast(this->eleHT[subID]); - if(!sub) + //先给所有节点都编号 + this->idToNumber(this->line); + this->idToNumber(this->sw); + this->idToNumber(this->tf); + //开始按要求输出 + //先输出线路 + QTextStream writer(&fd); + writer<::iterator ite=this->line.begin(); + ite!=this->line.end(); + ite++) { - std::cout<<"CIMExporter:: can not substation of "<length<<"\r\n"; } - LoadMapping loadMapping; - QVector > vecLoadInfo=loadMapping.getSubstationLoad(sub->getID()); - foreach(QSharedPointer p,vecLoadInfo) + //输出刀闸 + for(QList::iterator ite=this->sw.begin(); + ite!=this->sw.end(); + ite++) { - QFileInfo targetBasename(p->getLoadPath()); - std::cout<fromNum<<"\t"; + writer<toNum<<"\t"; + writer<<"type"<<"\t"; + writer<<0<<"\r\n"; + } + //输出负荷 + RecurseDir recurseDir; + recurseDir.setDir(this->loadDir); + QStringList files; + files=recurseDir.getFiles(); + //只取文件名 + QStringList baseNames; + foreach(QString file,files) + { + QFileInfo fileInfo(file); + baseNames<::iterator ite=this->tf.begin(); + ite!=this->tf.end(); + ite++) + { + PowerTransformer *tf=ite->tf->getTF(); + QString subID=tf->getEquipmentMemberOf_EquipmentContainer();//所属Substation的ID + Substation *sub=static_cast(this->eleHT[subID]); + if(!sub) { -// std::cout<<"match "<getPA(); - break; + std::cout<<"CIMExporter:: can not substation of "< > vecLoadInfo=loadMapping.getSubstationLoad(sub->getID()); + foreach(QSharedPointer p,vecLoadInfo) + { + QFileInfo targetBasename(p->getLoadPath()); + // std::cout<updateByTime(QTime(3,45,0)); +// std::cout<numberIt(ite->toID)<<" "<< p->getPA()<fromNum<<"\t"; + writer<toNum<<"\t"; + writer<<"type"<<"\t"; + writer<getMVA()<<"\r\n"; + break; + } + } + + } + //列出没有用的负荷文件 + foreach(QString name, baseNames) + { + if(!usedLoad.contains(name)) + { + std::cout<number.values().length()+1; + int n=this->number.keys().length()+1; this->number[id]=n; return n; diff --git a/testHasttable/cimexporter.h b/testHasttable/cimexporter.h index efa4da1..0c83f5f 100644 --- a/testHasttable/cimexporter.h +++ b/testHasttable/cimexporter.h @@ -9,6 +9,9 @@ #include #include #include +#include +#include +#include #include "recursedir.h" #include "substation.h" #include "loadmapping.h" diff --git a/testHasttable/element/line.cpp b/testHasttable/element/line.cpp index 21439b2..cd4b51a 100644 --- a/testHasttable/element/line.cpp +++ b/testHasttable/element/line.cpp @@ -23,4 +23,5 @@ void Line::extract() this->g2=g0*length; this->b1=b0*length; this->b2=b0*length; + this->length=length; } diff --git a/testHasttable/element/line.h b/testHasttable/element/line.h index c4123ca..327758f 100644 --- a/testHasttable/element/line.h +++ b/testHasttable/element/line.h @@ -8,6 +8,7 @@ class Line:public Branch { public: Line(const QPair &fromTo, ACLineSegment* ac,QObject* parent=0); + double length; protected: virtual void extract(); private: diff --git a/testHasttable/element/transformer.cpp b/testHasttable/element/transformer.cpp index 3ad2eb7..c7b348d 100644 --- a/testHasttable/element/transformer.cpp +++ b/testHasttable/element/transformer.cpp @@ -11,7 +11,8 @@ Transformer::Transformer(const QPair& fromTo, PowerTransformer* void Transformer::extract() { -// PowerTransformer *tf=this->tf; + PowerTransformer *tf=this->tf; + this->capacityMVA=tf->getMVA(); double length=10; //单位阻抗 double r0=0.01; @@ -24,7 +25,7 @@ void Transformer::extract() this->g2=g0*length; this->b1=b0*length; this->b2=b0*length; - //解析负荷 + } diff --git a/testHasttable/element/transformer.h b/testHasttable/element/transformer.h index 0cf04db..009ed22 100644 --- a/testHasttable/element/transformer.h +++ b/testHasttable/element/transformer.h @@ -10,6 +10,7 @@ class Transformer:public Branch public: Transformer(const QPair &fromTo, PowerTransformer *tf,QObject *parent=0); PowerTransformer *getTF(); + double capacityMVA; protected: virtual void extract(); private: diff --git a/testHasttable/elementhashtable.cpp b/testHasttable/elementhashtable.cpp index 77c5735..e143be4 100644 --- a/testHasttable/elementhashtable.cpp +++ b/testHasttable/elementhashtable.cpp @@ -105,7 +105,7 @@ bool ElementHashtable::GoPath() } this->tpRecorder=new TopologyRecorder(this->eleHT,this->FDSet,this->loadFilePath); this->tpRecorder->startWithNode(node); - this->tpRecorder->exportTo(""); +// this->tpRecorder->exportTo(""); break; } } @@ -162,7 +162,10 @@ bool ElementHashtable::Parse(const QString& xmlPWPath,const QString& xmlZWPath){ return true; } - +void ElementHashtable::ExportTo(const QString& path) +{ + this->tpRecorder->exportTo(path); +} void ElementHashtable::SetACLineID(const QString &id)//寻找的线路ID { diff --git a/testHasttable/elementhashtable.h b/testHasttable/elementhashtable.h index cf370da..af1ab07 100644 --- a/testHasttable/elementhashtable.h +++ b/testHasttable/elementhashtable.h @@ -27,7 +27,7 @@ public: explicit ElementHashtable(QObject *parent = 0); bool Parse(const QString& xmlPWPath,const QString& xmlZWPath); bool GoPath(); -// void ExportTo(const QString& path); + void ExportTo(const QString& path); void SetACLineID(const QString &id);//寻找的线路ID void SetLoadFilePath(const QString &path); void SetFDSet(const QVector &FDSet);//FeeDer集合 diff --git a/testHasttable/task.cpp b/testHasttable/task.cpp index 982e735..b39f134 100644 --- a/testHasttable/task.cpp +++ b/testHasttable/task.cpp @@ -69,6 +69,7 @@ void Task::doAgainstTaskFile(ElementHashtable &eleHT) eleHT.SetACLineID(lineID); eleHT.SetFDSet(setSep.toVector()); eleHT.GoPath(); + eleHT.ExportTo(QString("D:/MyPro/cimforreduceloss/testHasttable/output/pan/")+sep.at(0)+".txt"); eleHT.ShowContainerInfo(lineName); break;