325 lines
6.0 KiB
C++
325 lines
6.0 KiB
C++
#ifndef UIREADER_H
|
|
#define UIREADER_H
|
|
|
|
//#include <QtGui>
|
|
#include <QXmlStreamReader>
|
|
#include <vector>
|
|
#include <assert.h>
|
|
#include <math.h>
|
|
#include <QIODevice>
|
|
#include <QTextStream>
|
|
#include <QFile>
|
|
#include <iostream>
|
|
|
|
class total
|
|
{
|
|
public:
|
|
QString ID;
|
|
QString description;
|
|
QString name;
|
|
int flag;
|
|
std::vector<QString> Terminal_res;
|
|
int island;
|
|
};
|
|
|
|
class List
|
|
{
|
|
public:
|
|
QString ID;
|
|
QString name;
|
|
int no;
|
|
int flag;
|
|
};
|
|
|
|
class AC_kind
|
|
{
|
|
public:
|
|
QString GIS_ID;
|
|
int quantity;
|
|
int calculateTimes;
|
|
};
|
|
|
|
|
|
class Substation:public total
|
|
{
|
|
public:
|
|
std::vector<QString> MemberOf_SubControlArea_res;
|
|
QString GIS_type;
|
|
};
|
|
|
|
class Terminal:public total
|
|
{
|
|
public:
|
|
std::vector<QString> ConductingEquipment_res;
|
|
std::vector<QString> ConnectivityNode_res;
|
|
|
|
};
|
|
|
|
|
|
class BaseVoltage:public total
|
|
{
|
|
public:
|
|
double nominalVoltage;
|
|
std::vector<QString> BasePower_res;
|
|
};
|
|
|
|
class BasePower:public total
|
|
{
|
|
public:
|
|
double basePower;
|
|
};
|
|
|
|
class ConnectivityNode:public total
|
|
{
|
|
public:
|
|
std::vector<QString> MemberOf_EquipmentContainer_res;
|
|
};
|
|
|
|
class ACLineSegment:public total
|
|
{
|
|
public:
|
|
double LongLength;
|
|
double secLength; //每节段长度
|
|
int foreheadI; //上一节段是第i号线路
|
|
double depth; //节段的深度
|
|
QString Model;
|
|
std::vector<QString> BaseVoltage_res;
|
|
int link_from;
|
|
int link_to;
|
|
std::vector<QString> MemberOf_EquipmentContainer_res;
|
|
double r;
|
|
double x;
|
|
double UB;
|
|
QString GIS_ID;
|
|
QString foreheadLine;
|
|
|
|
};
|
|
|
|
class LoadBreakSwitch:public total
|
|
{
|
|
public:
|
|
QString normalOpen;
|
|
std::vector<QString> MemberOf_EquipmentContainer_res;
|
|
std::vector<QString> BaseVoltage_res;
|
|
std::vector<QString> Circuits_res;
|
|
};
|
|
|
|
class BusbarSection:public total
|
|
{
|
|
public:
|
|
QString Normal_Voltage;
|
|
std::vector<QString> MemberOf_EquipmentContainer_res;
|
|
std::vector<QString> BaseVoltage_res;
|
|
double PG;
|
|
double QG;
|
|
double PL;
|
|
double QL;
|
|
double UB;
|
|
int busSequence;
|
|
};
|
|
|
|
class Disconnector:public total
|
|
{
|
|
public:
|
|
QString normalOpen;
|
|
std::vector<QString> MemberOf_EquipmentContainer_res;
|
|
std::vector<QString> BaseVoltage_res;
|
|
std::vector<QString> Circuits_res;
|
|
};
|
|
|
|
class PowerTransformer:public total
|
|
{
|
|
public:
|
|
std::vector<QString> MemberOf_EquipmentContainer_res;
|
|
std::vector<QString> Circuits_res;
|
|
std::vector<QString> BaseVoltage_res;
|
|
QString Serial_Number;
|
|
int link_1;
|
|
int link_2;
|
|
int link_3;
|
|
int low;
|
|
double ratedMVA;
|
|
double APower;
|
|
double BPower;
|
|
double CPower;
|
|
QString Model;
|
|
double r;
|
|
double x;
|
|
double Pk;
|
|
double Uk;
|
|
double UB;
|
|
double AReactivePower;
|
|
double BReactivePower;
|
|
double CReactivePower;
|
|
double g;
|
|
double b;
|
|
double P0;
|
|
double I0;
|
|
bool isPublic;
|
|
QString foreheadLine;
|
|
QString type;
|
|
|
|
};
|
|
|
|
class TransformerWinding:public total
|
|
{
|
|
public:
|
|
std::vector<QString> MemberOf_PowerTransformer_res;
|
|
std::vector<QString> BaseVoltage_res;
|
|
};
|
|
|
|
class GroundDisconnector:public total
|
|
{
|
|
public:
|
|
QString normalOpen;
|
|
std::vector<QString> Circuits_res;
|
|
std::vector<QString> BaseVoltage_res;
|
|
std::vector<QString> MemberOf_EquipmentContainer_res;
|
|
};
|
|
|
|
class CompositeSwitch:public total
|
|
{
|
|
public:
|
|
QString CompositeSwitchType;
|
|
std::vector<QString> Circuits_res;
|
|
};
|
|
|
|
class Circuit:public total
|
|
{
|
|
public:
|
|
std::vector<QString> Substations_res;
|
|
};
|
|
|
|
class Bay:public total
|
|
{
|
|
public:
|
|
std::vector<QString> MemberOf_Substation_res;
|
|
std::vector<QString> BaseVoltage_res;
|
|
};
|
|
|
|
class Connector:public total
|
|
{
|
|
public:
|
|
std::vector<QString> MemberOf_EquipmentContainer_res;
|
|
int link_from;
|
|
int link_to;
|
|
};
|
|
|
|
class Fuse:public total
|
|
{
|
|
public:
|
|
QString normalOpen;
|
|
std::vector<QString> BaseVoltage_res;
|
|
std::vector<QString> Circuits_res;
|
|
};
|
|
|
|
class Pole:public total
|
|
{
|
|
public:
|
|
std::vector<QString> BaseVoltage_res;
|
|
std::vector<QString> Circuits_res;
|
|
};
|
|
|
|
class Breaker:public total
|
|
{
|
|
public:
|
|
int GIS_ID;
|
|
std::vector<QString> BaseVoltage_res;
|
|
std::vector<QString> MemberOf_EquipmentContainer_res;
|
|
};
|
|
|
|
class vector_finder //得到与ID号相对应的索引
|
|
{
|
|
public:
|
|
vector_finder(QString a):m_i_a(a){}
|
|
bool operator ()(const std::vector<List>::value_type &value)
|
|
{
|
|
return value.ID == m_i_a;
|
|
}
|
|
private:
|
|
QString m_i_a;
|
|
};
|
|
|
|
class ac_finder
|
|
{
|
|
public:
|
|
ac_finder(QString a):m_i_a(a){}
|
|
bool operator ()(const std::vector<AC_kind>::value_type &value)
|
|
{
|
|
return value.GIS_ID == m_i_a;
|
|
}
|
|
private:
|
|
QString m_i_a;
|
|
};
|
|
|
|
class bus_finder
|
|
{
|
|
public:
|
|
bus_finder(int a):m_i_a(a){}
|
|
bool operator ()(const std::vector<PowerTransformer>::value_type &value)
|
|
{
|
|
return value.low == m_i_a;
|
|
}
|
|
private:
|
|
int m_i_a;
|
|
};
|
|
|
|
class DisSubstation
|
|
{
|
|
public:
|
|
QString Name;
|
|
QString CIMID;
|
|
QString Description;
|
|
QString MemberOf;
|
|
};
|
|
|
|
class DisLine
|
|
{
|
|
public:
|
|
QString Name;
|
|
QString CIMID;
|
|
QString Owner;
|
|
QString MemberOf;
|
|
};
|
|
|
|
class DisSecNode
|
|
{
|
|
public:
|
|
QString Name;
|
|
QString ID;
|
|
QString FatherID;
|
|
QString LineType;
|
|
QString LineID;
|
|
double Depth;
|
|
double UnitR;
|
|
double SecLong;
|
|
double G;
|
|
double B;
|
|
};
|
|
|
|
class DisTrans
|
|
{
|
|
public:
|
|
QString ID;
|
|
QString Name;
|
|
QString SecNode;
|
|
double Ps;
|
|
double P0;
|
|
double Up;
|
|
double Ip;
|
|
double RunRate;
|
|
QString Type;
|
|
QString UserType;
|
|
QString LineID;
|
|
double S;
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|