From 75136618f739a4a2c95b36e4eab3960cd85cb60b Mon Sep 17 00:00:00 2001 From: RCi <15089880081@163.com> Date: Sat, 18 Oct 2025 01:08:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/qtBridge.h | 19 ++++++++++++---- src/Core/back/triggerManager.cpp | 4 ++-- src/Core/back/triggerManager.h | 22 ++++++++++++++----- .../GUI/uiModule/uiModule_runCommand.h | 8 ++++--- .../uiModule/uiModule_softwareDataDisplay.h | 2 +- src/launcher/main.cpp | 2 +- 6 files changed, 41 insertions(+), 16 deletions(-) diff --git a/include/qtBridge.h b/include/qtBridge.h index 57c9d2e..f21c3c1 100644 --- a/include/qtBridge.h +++ b/include/qtBridge.h @@ -1,11 +1,16 @@ #pragma once #include +#include +#include +#include + +#include +#include #include -#include -#include #include #include + #include enum initStatus{ NotInit, @@ -13,6 +18,7 @@ enum initStatus{ InitOK }; +// 展示图片所需的打包结构体,用于在跨线程信号中携带图像与元信息 struct showImgPack{ cv::Mat img; QString name = ""; @@ -26,6 +32,7 @@ enum valueType { finsFloat }; +// PLC 值查看器的配置结构体 struct PlcValueViewerStruct { QString valueName; int valueAddr; @@ -34,6 +41,10 @@ struct PlcValueViewerStruct { class qtFuncBridge : public QObject { Q_OBJECT +public: + qtFuncBridge() { + + } signals: // 日志相关 void loadingWindow_appendInitLog(const QString& text, const QColor& color); @@ -78,10 +89,10 @@ signals: //排障 void runCommand_addBtn(const QString& btnName, const QString& tip, const QString& uuid); - void runCommand_addPlcValueViewer(const QString& groupName,std::vector viewerNameAndAddress); + void runCommand_addPlcValueViewer(QString groupName, std::vector> viewerNameAndAddress); void runCommand_refeshPlcValueViewer(int address,int value); //性能监测 void sendTriggerManagerLoopData(int loopCounterPerMin,int maxInterval); }; -#pragma once \ No newline at end of file + diff --git a/src/Core/back/triggerManager.cpp b/src/Core/back/triggerManager.cpp index df2c0e0..d479160 100644 --- a/src/Core/back/triggerManager.cpp +++ b/src/Core/back/triggerManager.cpp @@ -45,8 +45,8 @@ void triggerManager::run(){ heartBeatCmdCnt = 0; heartTimer.start(); } - if (loopCounterCollectTimer.elapsed() > 10000) { - emit bridge->sendTriggerManagerLoopData(loopCounter / 10, maxIntervalLog); + if (loopCounterCollectTimer.elapsed() > 3000) { + emit bridge->sendTriggerManagerLoopData(loopCounter / 3, maxIntervalLog); maxIntervalLog = 0; loopCounter = 0; loopCounterCollectTimer.start(); diff --git a/src/Core/back/triggerManager.h b/src/Core/back/triggerManager.h index 0a2d664..2a99925 100644 --- a/src/Core/back/triggerManager.h +++ b/src/Core/back/triggerManager.h @@ -181,7 +181,15 @@ public: #pragma endregion #pragma region 接收数据 void reciveCommond(); - + //int read(int dmPos, QByteArray byte) + //{ + // int triggerPos = (dmPos - startPos) * 2; + // if (byte.size() < triggerPos) + // return false; + // int val1 = byte.at(triggerPos) * 256; + // int val2 = static_cast(byte.at(triggerPos + 1)); + // return val1 + val2; + //} QVariant read(int dmPos) { QByteArray readByte; mutex.lock(); @@ -385,12 +393,16 @@ public: } //SUB - void registerPlcValueViewer(const QString& groupName, const std::vector& plcViewerDatas) { - for (auto& data : plcViewerDatas) { + void registerPlcValueViewer(const QString& groupName, const std::vector& viewerDatas) { + for (auto& data : viewerDatas) { if (data.valueAddr < 0)continue; - plcValueViewerDatas.push_back({ data.valueAddr, -1 }); + plcValueViewerDatas.push_back({ data.valueAddr, -999 }); } - emit bridge->runCommand_addPlcValueViewer(groupName, plcViewerDatas); + std::vector> forShow; + for (auto& data : viewerDatas) { + forShow.push_back(std::make_pair(data.valueName, data.valueAddr)); + } + emit bridge->runCommand_addPlcValueViewer(groupName, forShow); } void checkPlcValueViewer(readAllStruct& _struct, QByteArray& byteArray) { QMutexLocker locer(&mutex); diff --git a/src/launcher/GUI/uiModule/uiModule_runCommand.h b/src/launcher/GUI/uiModule/uiModule_runCommand.h index dac54f9..754baf7 100644 --- a/src/launcher/GUI/uiModule/uiModule_runCommand.h +++ b/src/launcher/GUI/uiModule/uiModule_runCommand.h @@ -2,6 +2,8 @@ #include #include #include +#include + class plcValueViewer :public QWidget{ public: QPalette palette; @@ -9,7 +11,7 @@ public: QFont font2 = QFont("微软雅黑", 10, QFont::Bold); QFont font3 = QFont("微软雅黑", 6, QFont::Bold); plcValueViewer(const QString& groupNameIN, - const std::vector& viewerNameAndAddress, + const std::vector>& viewerNameAndAddress, QMap>& plcViwerLineedits) :groupName(groupNameIN){ @@ -20,7 +22,7 @@ public: layout->addWidget(groupNameLabel); for (auto& data : viewerNameAndAddress) { - plcViwerLineedits[data.valueAddr].push_back(addViewer(data.valueName)); + plcViwerLineedits[data.second].push_back(addViewer(data.first)); } widget->setMaximumHeight(100); } @@ -91,7 +93,7 @@ public slots: } }); } - void addPlcValueViewer(const QString& groupName,std::vector viewerNameAndAddress) { + void addPlcValueViewer(QString groupName, std::vector> viewerNameAndAddress) { auto widget = new plcValueViewer(groupName, viewerNameAndAddress, plcViwerLineedits); plcValueViewerLayout->addWidget(widget->widget,Qt::AlignTop); } diff --git a/src/launcher/GUI/uiModule/uiModule_softwareDataDisplay.h b/src/launcher/GUI/uiModule/uiModule_softwareDataDisplay.h index 45d9446..38083ef 100644 --- a/src/launcher/GUI/uiModule/uiModule_softwareDataDisplay.h +++ b/src/launcher/GUI/uiModule/uiModule_softwareDataDisplay.h @@ -118,7 +118,7 @@ private slots: public slots: void onTriggerSateChanged(int loopCounterPerMin, int maxInterval) { int activeThreadCount = QThreadPool::globalInstance()->activeThreadCount(); - triggerState->setText(QString::number(loopCounterPerMin) + " " + QString::number(maxInterval) + " " + QString::number(activeThreadCount)); + triggerState->setText(QString::number(loopCounterPerMin) + "L " + QString::number(maxInterval) + "ms " + QString::number(activeThreadCount) +"T"); } private: QTimer* timer; diff --git a/src/launcher/main.cpp b/src/launcher/main.cpp index 39b7632..2b1e706 100644 --- a/src/launcher/main.cpp +++ b/src/launcher/main.cpp @@ -203,7 +203,7 @@ int main(int argc, char* argv[]) //检测是否已运行 if (appIsRuning() == false) exit(0); - ////////// + ////////// #pragma region 注册信号槽变量 qRegisterMetaType("matPtr"); qRegisterMetaType("stdString");