#ifndef CIMEXPORTER_H #define CIMEXPORTER_H #include #include "element/line.h" #include "element/switch.h" #include "element/transformer.h" #include "element/commontype.h" #include #include #include #include #include #include #include #include #include "recursedir.h" #include "substation.h" #include "loadmapping.h" #include "loadinfo.h" #include #include "topologytest.h" #include "elementreduction.h" #include "loadmatchexception.h" #include "special/loadexporter.h" #include //#include "elementhashtable.h" //class Substation; class CIMExporter { class NodePQ { public: NodePQ():nodeNum(0),P(0),Q(0) {} explicit NodePQ(int nodeNum,double P,double Q):nodeNum(nodeNum),P(P),Q(Q) {} int nodeNum; double P; double Q; }; class GroundBranch { public: explicit GroundBranch(int nodeNum,double g,double b):nodeNum(nodeNum),g(g),b(b) {} int nodeNum; double g; double b; }; public: explicit CIMExporter(const QHash& eleHT,const QString& loadDir); void add(const QPair& fromTo,Line* line); void add(const QPair& fromTo,Switch* sw); void add(const QPair& fromTo,Transformer* tf); void add(const QPair& fromTo,DG* dg); void exportTo(const QString& path, const QString &rootID); private: bool topologyTest(); QList line; QList sw; QList tf; QList dg; QHash number; int numberIt(const QString &id);//编号 template void idToNumber(QList &s);//把所有元件的标识进行编号 QString loadDir; const QHash& eleHT; }; #endif // CIMEXPORTER_H