mod diagramDesigner cmake

This commit is contained in:
baiYue 2025-12-19 20:05:50 +08:00
parent 37776d1258
commit 77cb3038e1
6 changed files with 38 additions and 0 deletions

View File

@ -27,6 +27,8 @@ else()
set(dd_PlatformDir "x64")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64")
set(dd_PlatformDir "aarch64")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|ARM64")
set(dd_PlatformDir "arm64")
else()
set(dd_PlatformDir "x64")
endif()

View File

@ -33,6 +33,7 @@ public:
DrawingPanel* getPanel(QString);
EditPanel* getEditPanel(QString);
MonitorPanel* getMonitorPanel(QString);
DataAccessor* getDataAccessor() const {return _dataAccessor;}
void updateSubPos();
void passRecommmandHttpData(HttpRecommandInfo); //传递推荐列表数据

View File

@ -146,6 +146,7 @@ public Q_SLOTS:
void onSignal_GetPointData(QString type,QMap<qint64,double> map);
void onSignal_generateDiagram(const QString&); //生成工程组态信号
void onSignal_openBayManager();
void onDataTimerOut();
private:
void addPortsToItem_json(PortState,QJsonArray,GraphicsProjectModelItem*); //将json格式的port添加到item
void autoSetModelName(GraphicsBaseModelItem*); //如果此页的工程模已被设置将projectName更新到item
@ -178,6 +179,9 @@ private:
QList<monitorRelationItem> m_lstMonitorRelation; //监控item层级关系
ItemPropertyDlg* m_curPropertyDlg;
QTimer* m_dataTimer; //获取数据的定时器
QStringList _curRequestLst; //当前请求对象列表
QMap<QString,QMap<quint64,double>> _curData; //当前数据
public:
static bool _dataInitialised;
};

View File

@ -16,6 +16,7 @@ public:
~DataAccessor();
void setParent(DiagramCavas* p) {_parentCavas = p;}
QMap<QString,QMap<quint64,double>> getTargetData(QStringList); //获取指定名称的值
public slots:
void onReceiveHttpData(const QString& sType,const QVariant& data);
void onReceiveWebsocketData(const QVariant& data);

View File

@ -48,6 +48,7 @@
#include "monitorPanel.h"
#include "designerView.h"
#include "uiCommunicationBus.h"
#include "instance/dataAccessor.h"
#include "global.h"
bool FixedPortsModel::_dataInitialised = false;
@ -61,6 +62,7 @@ FixedPortsModel::FixedPortsModel(PowerEntity* pEntity)
,m_projectIconSettingDlg(nullptr)
,m_pBayManager(nullptr)
,m_curPropertyDlg(nullptr)
,m_dataTimer(nullptr)
{
_cavas = nullptr;
loadNodeDataFromDataBase();
@ -71,6 +73,8 @@ FixedPortsModel::FixedPortsModel(PowerEntity* pEntity)
_modelDataInfo = DataManager::instance().modelData();
initialPropertyDlg();
connect(_timer,SIGNAL(timeout()),this,SLOT(onTimeOut()));
connect(m_dataTimer,&QTimer::timeout,this,&FixedPortsModel::onDataTimerOut);
m_dataTimer->setInterval(2000);
connect(_Interface,&HttpInterface::sendPointData,this,&FixedPortsModel::onSignal_GetPointData);
}
@ -1203,6 +1207,16 @@ void FixedPortsModel::onSignal_openBayManager()
m_pBayManager->showDlg();
}
void FixedPortsModel::onDataTimerOut()
{
if(!_curRequestLst.isEmpty()){
auto pDataAccessor = _cavas->getDataAccessor();
if(pDataAccessor){
_curData = pDataAccessor->getTargetData(_curRequestLst);
}
}
}
void FixedPortsModel::startHttpRequest()
{
if(_timer)
@ -2840,6 +2854,8 @@ void FixedPortsModel::startAcceptData()
}
UiCommunicationBus::instance()->insertTempRequest(_pageName,requestLst);
_curRequestLst = lstTarget;
m_dataTimer->start();
}
void FixedPortsModel::stopAcceptData(QString page)
@ -2870,4 +2886,5 @@ void FixedPortsModel::stopAcceptData(QString page)
QVariant variant = doc.toVariant();
UiCommunicationBus::instance()->sendHttpRequest(sPath,variant,"POST");
}
m_dataTimer->stop();
}

View File

@ -183,6 +183,19 @@ void DataAccessor::onReceiveWebsocketData(const QVariant& data)
}
}
QMap<QString,QMap<quint64,double>> DataAccessor::getTargetData(QStringList paraLst)
{
QMap<QString, QMap<quint64, double>> mapData;
QMutexLocker locker(&m_mutex);
for (const QString& key : paraLst) {
if (_realTimeData.contains(key)) {
mapData.insert(key, _realTimeData.value(key));
}
}
return mapData;
}
QString DataAccessor::removeAfterStreamBySplit(const QString& url)
{
QStringList parts = url.split('/');