From c1153839ffdfe8fa6154c540b59f1b153a6fae7f Mon Sep 17 00:00:00 2001 From: RCi <15089880081@163.com> Date: Wed, 2 Jul 2025 00:53:35 +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 --- src/Core/CMakeLists.txt | 2 +- src/Core/back/cameraManager.cpp | 2 +- src/Core/back/cameraManager.h | 13 +- src/Core/back/detData.h | 11 +- src/Core/back/imgSaveThreadManager.h | 1 + src/Core/back/toolkit.cpp | 406 ------------------ src/Core/back/toolkit.h | 125 ------ .../additionalFunc/generalDataCollation.h | 2 + .../additionalFunc}/manualDetThread.cpp | 0 .../additionalFunc}/manualDetThread.h | 2 +- .../GUI/front/pages/summary_data_page.h | 16 +- src/launcher/GUI/mainwindow.cpp | 4 +- src/launcher/GUI/mainwindow.h | 7 +- .../GUI/uiModule/uiModule_imageView.h | 46 +- src/launcher/main.cpp | 2 +- src/mission/952-11/952-11.hpp | 4 +- src/mission/952_15_H_25D/952_15_H_25D.h | 21 +- src/mission/952_15_Q_25D/952_15_H_25D.h | 246 ----------- .../{952_15_H_25D.cpp => 952_15_Q_25D.cpp} | 4 +- src/mission/952_15_Q_25D/952_15_Q_25D.h | 191 ++++++++ .../952_15_Q_25D/EVE_952_15_H_Algo.hpp | 110 ----- ...{952_15_Q_2D3D_1.cpp => 952_15_Q_2D3D.cpp} | 2 +- .../{952_15_Q_2D3D_1.h => 952_15_Q_2D3D.h} | 75 +--- 23 files changed, 281 insertions(+), 1011 deletions(-) delete mode 100644 src/Core/back/toolkit.cpp delete mode 100644 src/Core/back/toolkit.h create mode 100644 src/core/additionalFunc/generalDataCollation.h rename src/{Core/back => core/additionalFunc}/manualDetThread.cpp (100%) rename src/{Core/back => core/additionalFunc}/manualDetThread.h (97%) delete mode 100644 src/mission/952_15_Q_25D/952_15_H_25D.h rename src/mission/952_15_Q_25D/{952_15_H_25D.cpp => 952_15_Q_25D.cpp} (63%) create mode 100644 src/mission/952_15_Q_25D/952_15_Q_25D.h delete mode 100644 src/mission/952_15_Q_25D/EVE_952_15_H_Algo.hpp rename src/mission/952_15_Q_2D3D/{952_15_Q_2D3D_1.cpp => 952_15_Q_2D3D.cpp} (80%) rename src/mission/952_15_Q_2D3D/{952_15_Q_2D3D_1.h => 952_15_Q_2D3D.h} (83%) diff --git a/src/Core/CMakeLists.txt b/src/Core/CMakeLists.txt index 5ea6a23..9f44589 100644 --- a/src/Core/CMakeLists.txt +++ b/src/Core/CMakeLists.txt @@ -19,7 +19,7 @@ include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/back ${CMAKE_CURRENT_SOURCE_DIR}/front ${CMAKE_CURRENT_SOURCE_DIR}/handleAi - ${CMAKE_CURRENT_SOURCE_DIR}/halconAlgo + ${CMAKE_CURRENT_SOURCE_DIR}/additionalFunc ${CMAKE_CURRENT_SOURCE_DIR}/logger ${CMAKE_CURRENT_SOURCE_DIR}/simpleTools ${CMAKE_CURRENT_SOURCE_DIR}/uiModule diff --git a/src/Core/back/cameraManager.cpp b/src/Core/back/cameraManager.cpp index 4f42333..6806983 100644 --- a/src/Core/back/cameraManager.cpp +++ b/src/Core/back/cameraManager.cpp @@ -32,7 +32,7 @@ camera::camera(cameraModule cameraModulePtrIn, int indexIn,qtFuncBridge* bridgeI { bridge = bridgeIn; cameraModulePtr = cameraModulePtrIn; - _cameraStruct = cameraModulePtr._cameraStruct; + config = cameraModulePtr._cameraStruct; cameraName = cameraModulePtr.key; index = indexIn; lastUpdateTime.start(); diff --git a/src/Core/back/cameraManager.h b/src/Core/back/cameraManager.h index 26d9cfe..8518a39 100644 --- a/src/Core/back/cameraManager.h +++ b/src/Core/back/cameraManager.h @@ -1,10 +1,7 @@ -#ifndef CAMERAManager_H -#define CAMERAManager_H -#include +#include #include #include #include -#include #include #include #include @@ -24,7 +21,7 @@ public: QString cameraName; int imgShowCnt = 0; cameraModule cameraModulePtr; - cameraStruct _cameraStruct; + cameraStruct config; camera(cameraModule cameraModulePtrIn, int indexIn, qtFuncBridge* bridgeIn); ~camera() { @@ -98,7 +95,6 @@ public: } private: qtFuncBridge* bridge; - //detData* data = nullptr; void readData(std::string str) { QByteArray task_name(QByteArray::fromStdString(str)); @@ -129,7 +125,7 @@ public: _cameraStruct.connectionName = data["connectionName"]; _cameraStruct.dllPath = data["dllPath"]; _cameraStruct.oriSaveFormat = data["oriSaveFormat"]; - for (auto& imageShow : data["oriImageShow"]) + for (auto& imageShow : data["imageShow"]) { QString str = QString::fromStdString(imageShow); QStringList l = str.split("#"); @@ -182,5 +178,4 @@ public slots: } }; - -#endif \ No newline at end of file +#pragma once diff --git a/src/Core/back/detData.h b/src/Core/back/detData.h index 41921e3..0dafbad 100644 --- a/src/Core/back/detData.h +++ b/src/Core/back/detData.h @@ -7,9 +7,10 @@ #include #include #include -#include + //所有检测需要的数据均放在这里 +class camera; class detData; class detDataManager; class triggerManager; @@ -104,21 +105,23 @@ public: std::unordered_map>map; QMutex dataMutex; - std::shared_ptr insertDetData( + std::shared_ptr createDetData( QString IN_cameraKeyName, std::string IN_SN,int imgAmountMin, resultHandleCallback resultSolver, - algoEvaluateCallback _algoEvaluateCallback){ + algoEvaluateCallback _algoEvaluateCallback, + std::vector oriFormat){ QMutexLocker locker(&dataMutex); std::shared_ptr dataPtr(new detData(IN_cameraKeyName.toStdString())); - + dataPtr->oriFormat = oriFormat; dataPtr->triggerPtr = _triggerManager; dataPtr->SNcode = IN_SN; dataPtr->registerResultHandleCallback(resultSolver); dataPtr->registerAlgoEvaluateCallback(_algoEvaluateCallback); dataPtr->imgAmountMin = imgAmountMin; dataPtr->dManager = this; + map.insert({ dataPtr->timeCode,dataPtr }); if (dataPtr == nullptr) diff --git a/src/Core/back/imgSaveThreadManager.h b/src/Core/back/imgSaveThreadManager.h index 2478182..6265452 100644 --- a/src/Core/back/imgSaveThreadManager.h +++ b/src/Core/back/imgSaveThreadManager.h @@ -148,6 +148,7 @@ public: { std::vector resultFileNames; std::string fileName; + fileName += data->SNcode; for (auto str : data->imgSaveNameParameter) fileName += str + "_"; switch (type) diff --git a/src/Core/back/toolkit.cpp b/src/Core/back/toolkit.cpp deleted file mode 100644 index d098bab..0000000 --- a/src/Core/back/toolkit.cpp +++ /dev/null @@ -1,406 +0,0 @@ -/*############################################### - * 常用函数集合 - * - * - * - * - * ############################################*/ - -#include "toolkit.h" -#include -#include -#include -#include -#include -#include -#include - -bool isDirExist(const QString & fullDirName, bool Crt) -{ - QDir photo; - bool exist = photo.exists(fullDirName); - if (exist) - { - return true; - //qDebug() << fullDirName << QString::fromLocal8Bit("::已存在"); - } - else - { - //创建文件夹 - if(Crt)photo.mkdir(fullDirName); - //qDebug() << fullDirName << QString::fromLocal8Bit("::不存在,创建"); - } - return false; -} - -bool isFileExist(const QString & fullFileName, bool Crt) -{ - QFile file(fullFileName); - if (file.exists()) - { - //qDebug() << fullFileName << QString::fromLocal8Bit("::已存在"); - return true; - } - if(Crt){ - if(file.open(QIODevice::WriteOnly)){ - //WriteOnly或ReadWrite当文件不存在时创建 - file.flush(); - file.close(); - //qDebug() << fullFileName << QString::fromLocal8Bit("::已创建"); - }; - } - - - return false; -} - -QString createMultipleFoldes(const QString &fullDirName) -{ - QString path=QDir::fromNativeSeparators(fullDirName);// 将\\转/ - QDir dir(path); - if(dir.exists()){ - return dir.absolutePath(); - } - QString parent=createMultipleFoldes(path.mid(0,path.lastIndexOf("/"))); - QString dirName=path.mid(path.lastIndexOf("/")+1); - QDir parentPath(parent); - if(!dirName.isEmpty()){ - parentPath.mkpath(dirName); - } - return parent+"/"+dirName; -} - -QString GetTimeStamp(QString Stamp) -{ - QDateTime time = QDateTime::currentDateTime(); - QString times = time.toString(Stamp); - return times; -} - -bool QSetFileTimes(const QString & filepath, QDateTime& CreationTime) -{ - bool fing=true; - if(!isFileExist(filepath))return false; -#if (QT_VERSION &files, std::string format) -{ - intptr_t hFile = 0;//文件句柄 - struct _finddata_t fileinfo;//文件信息 - std::string p; - if ((hFile = _findfirst(p.assign(path).append("\\*" + format).c_str(), &fileinfo)) != -1) //文件存在 - { - do - { - if ((fileinfo.attrib & _A_SUBDIR))//判断是否为文件夹 - { - if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)//文件夹名中不含"."和".." - { - files.push_back(p.assign(path).append("\\").append(fileinfo.name)); //保存文件夹名 - getAllFiles(p.assign(path).append("\\").append(fileinfo.name), files, format); //递归遍历文件夹 - } - } - else - { - files.push_back(p.assign(path).append("\\").append(fileinfo.name));//如果不是文件夹,储存文件名 - } - } while (_findnext(hFile, &fileinfo) == 0); - _findclose(hFile); - } -} - - -QJsonObject loadJsonCfg(const QString path) -{ - QJsonObject json_object; - try - { - QJsonParseError jsonError; - QString json_cfg = path; - if (json_cfg.isEmpty()) - { - qCritical() << " [error] " << __FUNCTION__ << " line:" << __LINE__ << " JsonPath is null!"; - return json_object; - } - - QFile JsonFile; - JsonFile.setFileName(json_cfg); - JsonFile.open(QIODevice::ReadOnly); - - QByteArray m_Byte = JsonFile.readAll(); - if (m_Byte.isEmpty()) - { - qDebug() << __FUNCTION__ << " line:" << __LINE__ << json_cfg + " Content is empty"; - JsonFile.close(); - return json_object; - } - - QJsonDocument jsonDocument(QJsonDocument::fromJson(m_Byte, &jsonError)); - - if (!jsonDocument.isNull() && jsonError.error == QJsonParseError::NoError) - { - if (jsonDocument.isObject()) - { - json_object = jsonDocument.object(); - return json_object; - } - } - else - { - qCritical() << " [error] " << __FUNCTION__ << " line:" << __LINE__ << json_cfg + " is error!"; - } - - JsonFile.close(); - - } - catch (QString ev) - { - qCritical() << " [error] " << __FUNCTION__ << " line:" << __LINE__ << " ev:" << ev; - } - return json_object; -} - -QStringList ReadTextCfg(const QString path) -{ - - QString csvpath = path; - // 读取每日csv - QStringList lines; //配置信息列表 - QFile configFile; - configFile.setFileName(csvpath); - bool isTxT = false; - if (path.indexOf(".txt") != -1)isTxT = true; - if (configFile.open(QIODevice::ReadOnly | QIODevice::Text)) { - QTextStream stream_text(&configFile); - stream_text.setCodec(QTextCodec::codecForName("utf-8")); - // //可读取中文 - stream_text.seek(0); - while (!stream_text.atEnd()) - { - - lines.push_back(gb2312ToUtf8(stream_text.readLine())); - } - } - else { - qDebug() << "read csv " << csvpath << " failed!" << endl; - } - configFile.close(); - return lines; - -} - -bool WriteTXTCfg(const QStringList& parm,const QString path) { - - QString fileName = path; - - QFile file(fileName); - - if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) - return false; - - //用文本流读取文件 - QTextStream stream(&file); - - //转换为字符串 - - for each (auto var in parm) { - //写入文本流 - stream << var << endl; - } - //关闭文件 - file.close(); - return true; -} - -EncodingFormat FileCharacterEncoding(const QString& fileName) -{ - //假定默认编码utf8 - EncodingFormat code = EncodingFormat::UTF8; - - QFile file(fileName); - if (file.open(QIODevice::ReadOnly)) - { - //读取3字节用于判断 - QByteArray buffer = file.read(3); - quint8 sz1st = buffer.at(0); - quint8 sz2nd = buffer.at(1); - quint8 sz3rd = buffer.at(2); - if (sz1st == 0xFF && sz2nd == 0xFE) - { - code = EncodingFormat::UTF16LE; - } - else if (sz1st == 0xFE && sz2nd == 0xFF) - { - code = EncodingFormat::UTF16BE; - } - else if (sz1st == 0xEF && sz2nd == 0xBB && sz3rd == 0xBF) - { - code = EncodingFormat::UTF8BOM; - } - else - { - //尝试用utf8转换,如果无效字符数大于0,则表示是ansi编码 - QTextCodec::ConverterState cs; - QTextCodec* tc = QTextCodec::codecForName("utf-8"); - tc->toUnicode(buffer.constData(), buffer.size(), &cs); - code = (cs.invalidChars > 0) ? EncodingFormat::ANSI : EncodingFormat::UTF8; - } - - file.close(); - } - - return code; -} - -QString gb2312ToUtf8(const QString strUtf8) -{ - //printf("~~~~ utf8 str is:%s\n", strUtf8); - QTextCodec* utf8Codec = QTextCodec::codecForName("utf-8"); - QTextCodec* gb2312Codec = QTextCodec::codecForName("gb2312"); - - QString strUnicode = gb2312Codec->toUnicode(strUtf8.toLocal8Bit().data()); - QByteArray ByteUtf8 = utf8Codec->fromUnicode(strUnicode); - return ByteUtf8; -} \ No newline at end of file diff --git a/src/Core/back/toolkit.h b/src/Core/back/toolkit.h deleted file mode 100644 index 5b1ca19..0000000 --- a/src/Core/back/toolkit.h +++ /dev/null @@ -1,125 +0,0 @@ -/****************************************************************************** - * @project JTDemoUI - * @file toolkit.h - * @brief 常用工具包 - * - * @author LWQ - * @date 2021/12/01/10/23/43 - * @history - *****************************************************************************/ -#ifndef TOOLKIT_H -#define TOOLKIT_H -#include -#include -#include -#include -#include -#include -#include "io.h" -#include - -#pragma execution_character_set("utf-8") -/********************************************//** - *