From 4c079d612a1e487c351dee45e5f3f09e51d40373 Mon Sep 17 00:00:00 2001 From: bobpan Date: Wed, 21 Oct 2020 12:01:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=BE=E5=A4=87=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=8E=9F?= =?UTF-8?q?=E5=9B=BE=E4=BF=9D=E5=AD=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/algorithm/algorithm.cpp | 14 +- .../QDiskCleanThread/QDiskCleanThread.cpp | 6 +- src/lpMain/Station.cpp | 6 +- src/lpMain/WfCtrl.cpp | 6 +- tpvs17/lpMain/CMainWin.cpp | 46 +++- tpvs17/lpMain/CMainWin.h | 2 + tpvs17/lpMain/CMainWin.ui | 27 +- tpvs17/lpMain/QDeviceMgrUI.cpp | 40 ++- tpvs17/lpMain/QDeviceMgrUI.h | 5 + tpvs17/lpMain/QDeviceMgrUI.ui | 251 +++++++++++++++++- tpvs17/lpMain/lpSysConfig.cpp | 4 + tpvs17/lpMain/lpSysConfig.h | 2 + 12 files changed, 347 insertions(+), 62 deletions(-) diff --git a/src/algorithm/algorithm.cpp b/src/algorithm/algorithm.cpp index c35b2e1..d95f6eb 100644 --- a/src/algorithm/algorithm.cpp +++ b/src/algorithm/algorithm.cpp @@ -6,9 +6,6 @@ algorithm::algorithm(class IDetectorEngine* pDE) : m_pDE(pDE) m_pRunSolution = NULL; m_nCount = 0; m_nTaskCount = 0; - -// m_pDBMgr = NULL; -// m_pDB = NULL; m_bResetSolution = false; m_pRunCopySolution = NULL; @@ -24,11 +21,6 @@ algorithm::algorithm(class IDetectorEngine* pDE) : m_pDE(pDE) m_pDE->GetDataInterface(DEVICEMGR, &p); m_pDeviceMgr = (IDetectorDeviceMgr*)p; - -// m_pDE->GetDataInterface(DBMGR, &p); -// m_pDBMgr = (IDBPool*)p; -// m_pDB = m_pDBMgr->GetDBConnByName("Conn0"); - m_pSolutionMgr->RegistSink(this); return; @@ -165,7 +157,9 @@ bool algorithm::RunTask(class IImageObject* pImgObj, IDetectorTask* pTask, cv::M map.insert(lppOutParam[j]->strName, lppOutParam[j]->value); } } - + map.insert("taskID", pTask->GetID()); + map.insert("originImage", EngineBase::convMat2QImage(imgSrc)); + map.insert("tasktime", pTask->ExecTime()); pImgObj->IVariantMapToUI(map); delete[] lppOutParam; } @@ -244,8 +238,6 @@ bool algorithm::RunTask(class IImageObject* pImgObj, IDetectorTask* pTask, cv::M map.insert("originImage", EngineBase::convMat2QImage(imgSrc)); map.insert("tasktime", pTask->ExecTime()); pImgObj->IVariantMapToUI(map); - //pTask->SaveOutParam2DB(m_pDB); - } } diff --git a/src/lpMain/QDiskCleanThread/QDiskCleanThread.cpp b/src/lpMain/QDiskCleanThread/QDiskCleanThread.cpp index eb8d876..79ae127 100644 --- a/src/lpMain/QDiskCleanThread/QDiskCleanThread.cpp +++ b/src/lpMain/QDiskCleanThread/QDiskCleanThread.cpp @@ -41,10 +41,10 @@ void QDiskCleanThread::run() //qWarning() << "Start Scan Disk ..."; QString strDisk = m_strImgStorageFolder.left(2); int space = solarCell::SolarCellHelper::GetDiskFreeSpace(strDisk); - if (space < 1024 * 10) + if (space < 1024 * nMiniSize) { isUse = true; - m_nDay = 3; + m_nDay = 1; } //qWarning() << "spacesize =" << space; @@ -75,7 +75,7 @@ void QDiskCleanThread::run() } } space = solarCell::SolarCellHelper::GetDiskFreeSpace(strDisk); - qWarning() << "Delete Imgs ..."; + //qWarning() << "Delete Imgs ..."; } diff --git a/src/lpMain/Station.cpp b/src/lpMain/Station.cpp index 1f453b7..5b72118 100644 --- a/src/lpMain/Station.cpp +++ b/src/lpMain/Station.cpp @@ -258,9 +258,9 @@ QStringList Station::modelList() void Station::revResult() { emit(sgaddRevCount(1)); - if (m_pWfCtrl->IBatchModel()) { - - } +// if (m_pWfCtrl->IBatchModel()) { +// +// } } bool Station::trigImage() diff --git a/src/lpMain/WfCtrl.cpp b/src/lpMain/WfCtrl.cpp index 47c5288..c67aa31 100644 --- a/src/lpMain/WfCtrl.cpp +++ b/src/lpMain/WfCtrl.cpp @@ -25,11 +25,12 @@ CWfCtrl::CWfCtrl(ICoreCtrl* p1, WfColossus* p3) QSettings systemIniFile("systemInfo.ini", QSettings::IniFormat); m_nOnlineMode = systemIniFile.value("OnlineMode").toBool(); { - QString strErrorPath = QCoreApplication::applicationDirPath()+"/errorImage/"; + QString strSrcImgPath = QCoreApplication::applicationDirPath() + "/DBFiles/SrcImages/"; QDiskCleanThread *pDCleanThread = new QDiskCleanThread; + pDCleanThread->setModel(CleanDir); pDCleanThread->setUseFlag(lpSysConfig::instance()->m_CheckEnable); pDCleanThread->setDays(lpSysConfig::instance()->m_CheckFileDays); - pDCleanThread->SetImgStorageFolder(strErrorPath); + pDCleanThread->SetImgStorageFolder(strSrcImgPath); pDCleanThread->setMiniSize(lpSysConfig::instance()->m_MinSpaceSizeG); pDCleanThread->start(); m_pDCThreadList.append(pDCleanThread); @@ -37,7 +38,6 @@ CWfCtrl::CWfCtrl(ICoreCtrl* p1, WfColossus* p3) QString strRltImgPath = QCoreApplication::applicationDirPath() + "/DBFiles/Images/"; QDiskCleanThread *pCleanDir = new QDiskCleanThread; pCleanDir->setModel(CleanDir); - pCleanDir->setSleepS(3600); pCleanDir->setUseFlag(lpSysConfig::instance()->m_CheckEnable); pCleanDir->setDays(lpSysConfig::instance()->m_CheckFileDays); pCleanDir->SetImgStorageFolder(strRltImgPath); diff --git a/tpvs17/lpMain/CMainWin.cpp b/tpvs17/lpMain/CMainWin.cpp index 3981cec..d0f15bd 100644 --- a/tpvs17/lpMain/CMainWin.cpp +++ b/tpvs17/lpMain/CMainWin.cpp @@ -126,12 +126,6 @@ CMainWin::CMainWin(QWidget *parent) CMainWin::~CMainWin() { - -// if (m_pDesignerMgr) -// { -// delete m_pDesignerMgr; -// m_pDesignerMgr = nullptr; -// } DELETE_POINTER(m_pCameraTrig); DELETE_POINTER(m_pWfCtrl); DELETE_POINTER(m_pColossus); @@ -150,7 +144,11 @@ CMainWin::~CMainWin() delete m_pSerialPort; m_pSerialPort = NULL; } - +// if (m_pDesignerMgr) +// { +// delete m_pDesignerMgr; +// m_pDesignerMgr = nullptr; +// } if (m_pDllDetectorEngine) { delete m_pDllDetectorEngine; @@ -162,6 +160,7 @@ CMainWin::~CMainWin() delete m_pDllCoreCtrl; m_pDllCoreCtrl = nullptr; } + lpSysConfig::uninstance(); rmTranslator(); lpSysLog::uninstance(); } @@ -181,6 +180,8 @@ void CMainWin::IVariantMapToUI(emTpUiDataType dataType, const QString& camKey, c if (!vMap.contains("angle")) { qWarning() << "no angle result"; } + QImage srcImg = vMap.value("originImage").value(); + double dAngle = vMap.contains("angle") ? vMap.value("angle").toDouble() : 365; int errorType = vMap.contains("error") ? vMap.value("error").toInt() : 16; double matchScore = vMap.value("score").toDouble() * 100; @@ -208,6 +209,8 @@ void CMainWin::IVariantMapToUI(emTpUiDataType dataType, const QString& camKey, c int ID = pStation->stationId(); QString strModelName = QString("%1_%2").arg(ID).arg(str2); QString strImgPath = genSavePath(strModelName, image); + if(lpSysConfig::instance()->m_bSaveSrcImg == true) + genSaveSrcImgPath(strModelName, srcImg); Struct2SaveData nStructData; nStructData.dAngle = dAngle; nStructData.errorType = errorType; @@ -220,12 +223,11 @@ void CMainWin::IVariantMapToUI(emTpUiDataType dataType, const QString& camKey, c qWarning() << "Add Result to DB,cam=" << camKey; m_db->addData2DB(nStructData); } - else { - qWarning() << "can not find station key=" << camKey; - qWarning() << "framework, camera kyes:" << m_pCoreCtrl->ICameraKeys(); - qWarning() << "wf ctrl, camera kyes:" << m_pWfCtrl->IGetStationKeys(); - } - qDebug() << "variant 2 ui, end"; +// else { +// qWarning() << "can not find station key=" << camKey; +// qWarning() << "framework, camera kyes:" << m_pCoreCtrl->ICameraKeys(); +// qWarning() << "wf ctrl, camera kyes:" << m_pWfCtrl->IGetStationKeys(); +// } } QVariant CMainWin::IGetVariantById(int id) @@ -237,6 +239,24 @@ QVariant CMainWin::IGetVariantById(int id) return QVariant(); } +QString CMainWin::genSaveSrcImgPath(QString modelName, QImage &img) +{ + QString strApp = QApplication::applicationDirPath(); + QString targetPath = "/DBFiles/SrcImages"; + QString strData = QDateTime::currentDateTime().toString("yyyyMMdd"); + QString strFileName = QDateTime::currentDateTime().toString("yyyy_MM_dd_hhmmsszzz") + ".bmp"; + targetPath = targetPath + "/" + strData + "/" + modelName; + QDir dir; + dir.mkpath(strApp + targetPath); + targetPath = targetPath + "/" + strFileName; + + if (!img.isNull()) { + QString strImg = strApp + targetPath; + img.save(strImg); + } + return targetPath; +} + QString CMainWin::genSavePath(QString modelName, QImage &img) { QString strApp = QApplication::applicationDirPath(); diff --git a/tpvs17/lpMain/CMainWin.h b/tpvs17/lpMain/CMainWin.h index 2687283..aff3569 100644 --- a/tpvs17/lpMain/CMainWin.h +++ b/tpvs17/lpMain/CMainWin.h @@ -47,6 +47,7 @@ public: virtual void IAlgorithmResult(const QVariantMap& varMap) {}; virtual void IVariantMapToUI(emTpUiDataType dataType, const QString& camKey, const QVariantMap& vMap); virtual QVariant IGetVariantById(int id); + virtual void IIoStatesChanged(int nOldState, int nNewState) {}; virtual void ICommAchieved(const char* szCom, int nCmd, BYTE* pData, int nDataLen) {}; virtual WORD IGetWorkState() { return 0; };//心跳包中发送的用来控制是否触发的值,返回0不触发,返回1触发 @@ -57,6 +58,7 @@ public: Q_SLOT void onShowLog(int nID, QString strMsg); Q_SLOT void onActionClicked(); QString genSavePath(QString modelName, QImage &img); + QString genSaveSrcImgPath(QString modelName, QImage &img); protected: virtual void timerEvent(QTimerEvent *event); virtual void closeEvent(QCloseEvent *event); diff --git a/tpvs17/lpMain/CMainWin.ui b/tpvs17/lpMain/CMainWin.ui index 979db22..9cf362c 100644 --- a/tpvs17/lpMain/CMainWin.ui +++ b/tpvs17/lpMain/CMainWin.ui @@ -6,7 +6,7 @@ 0 0 - 1028 + 1022 705 @@ -149,12 +149,6 @@ 372 - - - 492 - 372 - - QFrame::Panel @@ -188,19 +182,6 @@ - - - - Qt::Horizontal - - - - 40 - 20 - - - - @@ -236,12 +217,6 @@ 372 - - - 492 - 372 - - QFrame::Panel diff --git a/tpvs17/lpMain/QDeviceMgrUI.cpp b/tpvs17/lpMain/QDeviceMgrUI.cpp index 7dfe642..7cb2f5d 100644 --- a/tpvs17/lpMain/QDeviceMgrUI.cpp +++ b/tpvs17/lpMain/QDeviceMgrUI.cpp @@ -1,11 +1,49 @@ #include "QDeviceMgrUI.h" - +#include "lpSysConfig.h" +#include "QTipWidget.h" +#pragma execution_character_set("utf-8") QDeviceMgrUI::QDeviceMgrUI(QWidget *parent) : QWidget(parent) { ui.setupUi(this); + connect(ui.m_pbOK, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + } QDeviceMgrUI::~QDeviceMgrUI() { } + + +Q_SLOT void QDeviceMgrUI::onButtonClicked() +{ + getParam(); + lpSysConfig::instance()->writeConfig(); + ShowMessage(QObject::tr("参数已保存")); +} + +void QDeviceMgrUI::setParam() +{ + ui.m_lineEdit_ComName->setText(lpSysConfig::instance()->m_ComName); + ui.m_lineEdit_Baute->setText(QString("%1").arg(lpSysConfig::instance()->m_Baut)); + ui.checkBox->setChecked(lpSysConfig::instance()->m_bSaveSrcImg); + ui.checkBox_2->setChecked(lpSysConfig::instance()->m_CheckEnable); + ui.spinBox->setValue(lpSysConfig::instance()->m_MinSpaceSizeG); + ui.spinBox_2->setValue(lpSysConfig::instance()->m_CheckFileDays); + +} + +void QDeviceMgrUI::getParam() +{ + lpSysConfig::instance()->m_ComName = ui.m_lineEdit_ComName->text(); + lpSysConfig::instance()->m_Baut = ui.m_lineEdit_Baute->text().toInt(); + lpSysConfig::instance()->m_bSaveSrcImg = ui.checkBox->isChecked(); + lpSysConfig::instance()->m_CheckEnable = ui.checkBox_2->isChecked(); + lpSysConfig::instance()->m_MinSpaceSizeG = ui.spinBox->value(); + lpSysConfig::instance()->m_CheckFileDays = ui.spinBox_2->value(); +} + +void QDeviceMgrUI::showEvent(QShowEvent *event) +{ + setParam(); +} diff --git a/tpvs17/lpMain/QDeviceMgrUI.h b/tpvs17/lpMain/QDeviceMgrUI.h index f71b68d..7ab02db 100644 --- a/tpvs17/lpMain/QDeviceMgrUI.h +++ b/tpvs17/lpMain/QDeviceMgrUI.h @@ -12,6 +12,11 @@ public: QDeviceMgrUI(QWidget *parent = Q_NULLPTR); ~QDeviceMgrUI(); + + Q_SLOT void onButtonClicked(); + void setParam(); + void getParam(); + virtual void showEvent(QShowEvent *event); private: Ui::QDeviceMgrUI ui; }; diff --git a/tpvs17/lpMain/QDeviceMgrUI.ui b/tpvs17/lpMain/QDeviceMgrUI.ui index 8b1d9ea..b9d33b9 100644 --- a/tpvs17/lpMain/QDeviceMgrUI.ui +++ b/tpvs17/lpMain/QDeviceMgrUI.ui @@ -6,13 +6,260 @@ 0 0 - 400 - 300 + 516 + 195 璁惧绠$悊 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 100 + 30 + + + + + 11 + + + + 纭畾骞跺簲鐢 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 11 + + + + 閫氳璁惧閰嶇疆锛 + + + + + + + 11 + + + + 涓插彛鍚嶏細 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 11 + + + + + + + + + 11 + + + + 娉㈢壒鐜囷細 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 11 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + 0 + 0 + + + + + 11 + + + + 鍏朵粬鐩稿叧锛 + + + + + + + 11 + + + + 鏄惁淇濆瓨鍘熷浘鍔熻兘 + + + + + + + + 11 + + + + 鏄惁鍚敤瀹氭湡鍒犻櫎鍔熻兘 + + + + + + + + + + 11 + + + + 棰勭暀纾佺洏澶у皬锛 + + + Qt::AlignCenter + + + + + + + + 11 + + + + G + + + 1 + + + 10000 + + + + + + + + + + + + 11 + + + + 瓒呮湡澶╂暟锛 + + + Qt::AlignCenter + + + + + + + + 11 + + + + + + + 1 + + + 360 + + + + + + + + + + + diff --git a/tpvs17/lpMain/lpSysConfig.cpp b/tpvs17/lpMain/lpSysConfig.cpp index 3898116..7a2b225 100644 --- a/tpvs17/lpMain/lpSysConfig.cpp +++ b/tpvs17/lpMain/lpSysConfig.cpp @@ -25,6 +25,8 @@ void lpSysConfig::readConfig() m_MinSpaceSizeG = setting.value("CheckThread/spacesize", 10).toInt();//G m_TrigerFilter = setting.value("TrigDetector/FilterTime", 10).toInt(); + + m_bSaveSrcImg = setting.value("Image/Save", false).toBool(); } void lpSysConfig::writeConfig() @@ -40,4 +42,6 @@ void lpSysConfig::writeConfig() setting.setValue("CheckThread/spacesize", m_MinSpaceSizeG);//G setting.setValue("TrigDetector/FilterTime", m_TrigerFilter); + + setting.setValue("Image/Save", m_bSaveSrcImg); } diff --git a/tpvs17/lpMain/lpSysConfig.h b/tpvs17/lpMain/lpSysConfig.h index 594b547..fdcba33 100644 --- a/tpvs17/lpMain/lpSysConfig.h +++ b/tpvs17/lpMain/lpSysConfig.h @@ -27,6 +27,8 @@ public: int m_MinSpaceSizeG{ 10 };//G int m_TrigerFilter{ 10 }; + + bool m_bSaveSrcImg{ false }; private: QString m_CfgPath; };