97 lines
4.3 KiB
C++
97 lines
4.3 KiB
C++
#ifndef DIAGRAMEDITORBASEBLOCK_H
|
|
#define DIAGRAMEDITORBASEBLOCK_H
|
|
|
|
//组态编辑基础块(分段母线、间隔等)
|
|
#include <QObject>
|
|
#include "global.h"
|
|
|
|
class DiagramEditorStructContainer;
|
|
|
|
class DiagramEditorBaseBlock: public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
DiagramEditorBaseBlock(QObject *parent = 0);
|
|
virtual ~DiagramEditorBaseBlock() = 0;
|
|
virtual void setId(QUuid id) {uid = id;}
|
|
virtual QUuid getId() {return uid;}
|
|
virtual void setName(const QString& str) {sName = str;}
|
|
virtual QString getName() {return sName;}
|
|
virtual void setType(int n) {nType = n;}
|
|
virtual int getType() {return nType;}
|
|
virtual void addConnect(QUuid); //直接添加连接
|
|
virtual void removeConnect(QUuid);
|
|
virtual QList<QUuid> getConnect() {return _lstCon;}
|
|
virtual void clearConnect() {_lstCon.clear();}
|
|
virtual void setCurContainer(DiagramEditorStructContainer* p) {_curContainer = p;}
|
|
virtual DiagramEditorStructContainer* getCurContainer() {return _curContainer;}
|
|
virtual void setContainerLevel(int n) {nContainerLevel = n;}
|
|
virtual int getContainerLevel() {return nContainerLevel;}
|
|
protected:
|
|
QString sName;
|
|
int nType; //1母线,2间隔,3变压器
|
|
int nContainerLevel; //所处容器的层级 0,1,2,3
|
|
QUuid uid;
|
|
QList<QUuid> _lstCon; //连接信息
|
|
DiagramEditorStructContainer* _curContainer; //当前所处的容器
|
|
};
|
|
|
|
/***************************划分后的分段bus单元****************************/
|
|
class DiagramEditorBusBlock:public DiagramEditorBaseBlock
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
DiagramEditorBusBlock(QObject *parent = 0);
|
|
virtual ~DiagramEditorBusBlock();
|
|
virtual void setVoltage(float f) { fVoltage = f;}
|
|
virtual float getVoltage() {return fVoltage;}
|
|
virtual void setBusType(int n) {nBusType = n;}
|
|
virtual int getBusType() {return nBusType;}
|
|
virtual void setIndex(int n) {nIndex = n;}
|
|
virtual int getIndex() {return nIndex;}
|
|
virtual void setBusPro(QString sNa,int nTp,float fVol,int nBT,int nIdx) {sName = sNa;nType = nTp;fVoltage = fVol;nBusType = nBT;nIndex = nIdx;}
|
|
protected:
|
|
float fVoltage; //母线电压
|
|
int nBusType; //0无前缀,1:Ⅰ母,2Ⅱ母
|
|
int nIndex; //第几段,1A,2B,3C,4D,5E,6F,7G,8H
|
|
};
|
|
|
|
/***************************bay单元****************************/
|
|
class DiagramEditorBayBlock:public DiagramEditorBaseBlock
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
DiagramEditorBayBlock(QObject *parent = 0);
|
|
virtual ~DiagramEditorBayBlock();
|
|
virtual void setBayType(BayType typ) {nBayType = typ;}
|
|
virtual BayType getBayType() {return nBayType;}
|
|
virtual void setRouteInfoMap(QMap<QString,DiagramEditorRouteInfo> info) {mapRouteInfo = info;}
|
|
virtual QMap<QString,DiagramEditorRouteInfo>& getRouteInfoMap() {return mapRouteInfo;}
|
|
virtual void setComponentMap(QMap<QString,DiagramEditorComponentInfo> info) {mapComponents = info;}
|
|
virtual QMap<QString,DiagramEditorComponentInfo>& getComponentMap() {return mapComponents;}
|
|
protected:
|
|
BayType nBayType;
|
|
QMap<QString,DiagramEditorRouteInfo> mapRouteInfo; //间隔中的线路信息
|
|
QMap<QString,DiagramEditorComponentInfo> mapComponents; //间隔中的所有设备信息
|
|
};
|
|
|
|
/***************************transformer单元****************************/
|
|
class DiagramEditorTransformerBlock:public DiagramEditorBaseBlock
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
DiagramEditorTransformerBlock(QObject *parent = 0);
|
|
virtual ~DiagramEditorTransformerBlock();
|
|
virtual void setTransType(TransformerType typ) {nTransType = typ;}
|
|
virtual TransformerType getTransType() {return nTransType;}
|
|
virtual void setRouteInfoMaps(QMap<int,QMap<QString,DiagramEditorRouteInfo>> info) {mapsRouteInfo = info;}
|
|
virtual QMap<int,QMap<QString,DiagramEditorRouteInfo>>& getRouteInfoMaps() {return mapsRouteInfo;}
|
|
virtual void setComponentMap(QMap<QString,DiagramEditorComponentInfo> info) {mapComponents = info;}
|
|
virtual QMap<QString,DiagramEditorComponentInfo>& getComponentMap() {return mapComponents;}
|
|
protected:
|
|
TransformerType nTransType;
|
|
QMap<int,QMap<QString,DiagramEditorRouteInfo>> mapsRouteInfo; //变压器中性点线路信息 0高1中2低
|
|
QMap<QString,DiagramEditorComponentInfo> mapComponents; //变压器中性点设备信息
|
|
};
|
|
#endif
|