2025-02-06 16:36:50 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "graphicsDataModel/baseModel.h"
|
|
|
|
|
|
#include "serializable.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include <QSharedPointer>
|
|
|
|
|
|
#include <QJsonObject>
|
|
|
|
|
|
#include <QTimer>
|
|
|
|
|
|
|
|
|
|
|
|
class DrawingPanel;
|
|
|
|
|
|
class GraphicsBaseItem;
|
|
|
|
|
|
class BaseProperty;
|
|
|
|
|
|
class DesignerScene;
|
|
|
|
|
|
class HttpInterface;
|
|
|
|
|
|
struct Connection;
|
|
|
|
|
|
|
|
|
|
|
|
class FixedPortsModel : public BaseModel, public Serializable
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
FixedPortsModel();
|
|
|
|
|
|
~FixedPortsModel();
|
|
|
|
|
|
public:
|
|
|
|
|
|
QMap<QUuid,QPointF> allNodePos() const;
|
|
|
|
|
|
QVector<Connection> allConnections();
|
|
|
|
|
|
QMap<QUuid,GraphicsBaseItem*>& allItems();
|
|
|
|
|
|
bool addNodeItem(QUuid uuid,GraphicsBaseItem*);
|
|
|
|
|
|
void addNodeItem(QUuid id,/*int type,*/QPointF pos);
|
|
|
|
|
|
QVariant nodeData(QUuid nodeId, NodeRole role) const;
|
2025-03-28 18:08:21 +08:00
|
|
|
|
BaseProperty* addNodeData(QUuid id,int type,QString name,QString modelName); //对应component数据,一个data可对应多个item
|
2025-02-06 16:36:50 +08:00
|
|
|
|
void loadNodeDataFromDataBase(); //从数据库加载数据
|
|
|
|
|
|
void addConnectLline(QUuid srcId,QUuid destId,int srcPort,int destPort);
|
|
|
|
|
|
void deleteNodeItem(GraphicsBaseItem*);
|
|
|
|
|
|
QJsonObject saveNode(QUuid const) const;
|
|
|
|
|
|
void saveNode(int nPageId);
|
|
|
|
|
|
void setScene(DesignerScene* p){_scene = p;}
|
|
|
|
|
|
void setTopWidget(DrawingPanel* p) {_widget = p;}
|
|
|
|
|
|
QWidget* getTopWidget();
|
2025-03-28 18:08:21 +08:00
|
|
|
|
void addModelProperty(modelStateInfo); //使用信号接收属性数据
|
|
|
|
|
|
void getModelInfo(); //获取模型结构信息
|
|
|
|
|
|
void getModelData(); //获取模型数据
|
2025-02-06 16:36:50 +08:00
|
|
|
|
Q_SIGNALS:
|
|
|
|
|
|
void activatePage(const QString&); //激活当前model所在page
|
|
|
|
|
|
public:
|
|
|
|
|
|
void setPageName(QString s) {_pageName = s;} //设置表名称
|
|
|
|
|
|
QString pageName() const {return _pageName;}
|
|
|
|
|
|
void activateModel() {Q_EMIT activatePage(_pageName);} //发送激活信号(点击)
|
|
|
|
|
|
void startHttpRequest(); //开始请求数据(运行时)
|
|
|
|
|
|
public Q_SLOTS:
|
|
|
|
|
|
void onSignal_ifExits(QUuid id,const QString&,int type,GraphicsBaseItem*); //判断用户输入的名称是否已存在
|
|
|
|
|
|
void onTimeOut();
|
|
|
|
|
|
void onSignal_GetPointData(QString type,QMap<qint64,double> map);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
QMap<QUuid,GraphicsBaseItem*> _nodeItem;
|
|
|
|
|
|
|
|
|
|
|
|
QString _pageName;
|
|
|
|
|
|
DesignerScene* _scene;
|
|
|
|
|
|
DrawingPanel* _widget; //顶层widget
|
|
|
|
|
|
HttpInterface* _Interface;
|
|
|
|
|
|
QTimer* _timer;
|
2025-03-28 18:08:21 +08:00
|
|
|
|
QMap<QString,modelStateInfo> _modelStateInfo; //接收的模型结构信息
|
|
|
|
|
|
QMap<QString,modelDataInfo> _modleDataInfo; //模型实时数据
|
2025-02-06 16:36:50 +08:00
|
|
|
|
public:
|
|
|
|
|
|
static bool _dataInitialised;
|
|
|
|
|
|
static QMap<QUuid,BaseProperty*> _nodeData; //一个data可对应多个item
|
|
|
|
|
|
};
|
|
|
|
|
|
|