diff --git a/runner17/user/systemConfig.ini b/runner17/user/systemConfig.ini new file mode 100644 index 0000000..a7a1fcd --- /dev/null +++ b/runner17/user/systemConfig.ini @@ -0,0 +1,15 @@ +[language] +select=Chinese + +[COM] +Port=COM3 +Baute=115200 + +[CheckThread] +days=7 +days_dir=30 +Enable=false +spacesize=10 + +[TrigDetector] +FilterTime=10 diff --git a/src/lpMain/IStation.h b/src/lpMain/IStation.h index c605f7c..d71d117 100644 --- a/src/lpMain/IStation.h +++ b/src/lpMain/IStation.h @@ -22,7 +22,7 @@ public: virtual void setCamInfo(int nId, int alg, QString uniqueName, QString showName) = 0; virtual QVariant getVariant(){ return QVariant(); } virtual void revResult() = 0; - virtual bool trigImage(const QString folder = QString()) = 0; + virtual bool trigImage() = 0; virtual bool isWorkingOk() = 0; virtual QString currentRunningModel() const = 0; diff --git a/src/lpMain/IWfCtrl.h b/src/lpMain/IWfCtrl.h index e3cc85f..a1ce0ad 100644 --- a/src/lpMain/IWfCtrl.h +++ b/src/lpMain/IWfCtrl.h @@ -16,10 +16,7 @@ public: virtual void ISetOnlineModel(bool) {}; virtual bool IBatchModel() = 0; virtual bool IConnectStatus() = 0; - virtual QString IGetCommName() = 0; virtual QString IGetCurrentRuningModel(int) = 0; - virtual void ISetUserInfo(QString& user, int& level)=0; - virtual bool IGetUserInfo(QString& user, int& level) = 0; virtual void registerConnect() =0; virtual QStringList IGetStationKeys() = 0; virtual IStation* IGetStationById(int) = 0; diff --git a/src/lpMain/ModelTable.cpp b/src/lpMain/ModelTable.cpp index 727b18d..40ff610 100644 --- a/src/lpMain/ModelTable.cpp +++ b/src/lpMain/ModelTable.cpp @@ -11,7 +11,6 @@ QVariant ModelModel::data(const QModelIndex &index, int role /*= Qt::DisplayRole if (role == Qt::DisplayRole) { int nCol = index.column(); int nRow = index.row(); - //qDebug() << index.row(); if (0 == nCol) { if (nRow != 0) { int a = 1; @@ -22,7 +21,6 @@ QVariant ModelModel::data(const QModelIndex &index, int role /*= Qt::DisplayRole return m_pStation->wfModel(m_pStation->model(nRow))->nIndex; } else if (2==nCol) { - //return m_pStation->wfModel(m_pStation->model(nRow))->bCaliState == true ? "已标定" : "未标定"; return m_pStation->IStandard(m_pStation->model(nRow)) == true ? QObject::tr("已标定") : QObject::tr("未标定"); } } @@ -30,17 +28,21 @@ QVariant ModelModel::data(const QModelIndex &index, int role /*= Qt::DisplayRole QString str1 = m_pStation->currentRunningModel(); QString str2 = m_pStation->model(index.row()); if (str1 == str2) { - return QColor(255, 0, 0); + return QColor(50, 250, 0, 80); } else { return QColor(255, 255, 255); } + } -// int nCol = index.column(); -// int nRow = index.row(); -// if (2 == nCol) { -// return m_pStation->IStandard(m_pStation->model(nRow)) == true ? QColor(255, 255, 255) : QColor(255, 0, 255); -// } + else if (role == Qt::TextColorRole) + { + int nRow = index.row(); + int nCol = index.column(); + if (2 == nCol) + { + return m_pStation->IStandard(m_pStation->model(nRow)) == true ? QColor(0, 0, 0) : QColor(255, 0, 25); + } } return QVariant(); } diff --git a/src/lpMain/QDiskCleanThread/QDiskCleanThread.cpp b/src/lpMain/QDiskCleanThread/QDiskCleanThread.cpp index 45e35d1..eb8d876 100644 --- a/src/lpMain/QDiskCleanThread/QDiskCleanThread.cpp +++ b/src/lpMain/QDiskCleanThread/QDiskCleanThread.cpp @@ -38,18 +38,16 @@ void QDiskCleanThread::run() { while (!m_bExit) { - qWarning() << "Start Scan Disk ..."; + //qWarning() << "Start Scan Disk ..."; QString strDisk = m_strImgStorageFolder.left(2); int space = solarCell::SolarCellHelper::GetDiskFreeSpace(strDisk); if (space < 1024 * 10) { isUse = true; m_nDay = 3; - } - - qWarning() << "spacesize =" << space; + //qWarning() << "spacesize =" << space; if (bModel == CleanFile)//清空图片数据的操作 { if (isUse) @@ -134,12 +132,12 @@ void QDiskCleanThread::run() } } } - qWarning() << "End Scan Disk ..."; + //qWarning() << "End Scan Disk ..."; //三十秒判断一次 if (nSleepTime <= 2) nSleepTime = 2; int sleeptime = nSleepTime * 1000; - msleep(100000); + msleep(1500); } } diff --git a/src/lpMain/Station.cpp b/src/lpMain/Station.cpp index 9366e9f..1f453b7 100644 --- a/src/lpMain/Station.cpp +++ b/src/lpMain/Station.cpp @@ -258,34 +258,13 @@ QStringList Station::modelList() void Station::revResult() { emit(sgaddRevCount(1)); - //m_pTrigDetector->addRevCount(); if (m_pWfCtrl->IBatchModel()) { } } -bool Station::trigImage(const QString folder/* = QString()*/) +bool Station::trigImage() { - if (!folder.isEmpty()) { - m_pCoreCtrl->IStopCamera(szCamKey); - m_pCoreCtrl->ICloseCamera(szCamKey); - changeImageFolder(folder); - - TP_CAMERA_OPTION optCam; - m_pCoreCtrl->ICameraOptionByKey(szCamKey, optCam); - if (optCam.status != TP_CAMERA_STATUS_OPENED && - optCam.status != TP_CAMERA_STATUS_STARTED){ - if (m_pCoreCtrl->IOpenCamera(szCamKey)) - { - bool b = m_pCoreCtrl->IStartCamera(szCamKey); - } - } - } - else { - if (m_pWfCtrl->IBatchModel()) { - - } - } TP_CAMERA_OPTION optCam; m_pCoreCtrl->ICameraOptionByKey(szCamKey, optCam); if (optCam.status != TP_CAMERA_STATUS_OPENED && @@ -384,7 +363,6 @@ bool Station::sendResult(double angleValue) sendFram2.data8 = data2[7]; m_pPort->enquequeData(sendFram2); } - } else { diff --git a/src/lpMain/Station.h b/src/lpMain/Station.h index d5ed1bd..089161f 100644 --- a/src/lpMain/Station.h +++ b/src/lpMain/Station.h @@ -31,7 +31,7 @@ public: virtual void setCamInfo(int nId, int alg, QString uniqueName, QString showName); virtual QVariant getVariant(); virtual void revResult(); - virtual bool trigImage(const QString folder = QString()); + virtual bool trigImage(); virtual bool isWorkingOk(); virtual QString currentRunningModel() const { return m_strCurrentModel; } diff --git a/src/lpMain/TrigDetector.cpp b/src/lpMain/TrigDetector.cpp index 688a164..b4d1d31 100644 --- a/src/lpMain/TrigDetector.cpp +++ b/src/lpMain/TrigDetector.cpp @@ -2,9 +2,9 @@ #include "QDebug" #include "qtimer.h" #include "qdatetime.h" +#include "lpSysConfig.h" - -CTrigDetector::CTrigDetector(QObject *parent) :QObject(parent) ,m_nMaxErrorCount(20), nTickCount(10) +CTrigDetector::CTrigDetector(QObject *parent) :QObject(parent) ,m_nMaxErrorCount(20) { lastTime = QDateTime::currentDateTime().toMSecsSinceEpoch(); nCount = 0; @@ -14,21 +14,13 @@ CTrigDetector::CTrigDetector(QObject *parent) :QObject(parent) ,m_nMaxErrorCount m_nErrorTime = 2000; m_nTimerID = -1; m_pTimer = new QTimer(this); - m_setting = new QSettings(".\\user\\systemfile.ini", QSettings::IniFormat); - readSettingFile(); connect(m_pTimer, SIGNAL(timeout()), this, SLOT(onChecker())); } - CTrigDetector::~CTrigDetector() { - writeSettingFile(); stop(); delete m_pTimer; - if (m_setting){ - delete m_setting; - m_setting = NULL; - } } void CTrigDetector::addTrigCount(int n /*= 1*/) @@ -49,17 +41,6 @@ bool CTrigDetector::start() return true; } -// bool CTrigDetector::restart(int nInterval /*= -1*/) -// { -// if (nInterval > 0) { -// m_nCheckInterval = nInterval; -// } -// qDebug() << "reset trig count"; -// m_nReceiveCount = m_nTrigCount; -// start(); -// return true; -// } - void CTrigDetector::onChecker() { if (m_nTrigCount < m_nReceiveCount) { @@ -122,30 +103,6 @@ bool CTrigDetector::correct() bool CTrigDetector::filterTrig() { - /*static QMap s_mpLastTime; - long long dTime = QDateTime::currentDateTime().toMSecsSinceEpoch(); - if (s_mpLastTime.contains(this)) { - long long lastTime = s_mpLastTime.value(this); - s_mpLastTime.take(this); - s_mpLastTime.insert(this, dTime); - long int interval = dTime - lastTime; - - if (interval < 350) { - qWarning() << "trig less than interval"; - if (nCount++ > nTickCount) - { - qWarning() << "correct"; - nCount = 0; - correct(); - return true; - } - return false; - } - } - s_mpLastTime.insert(this, dTime); - nCount = 0; - return true;*/ - long long dTime = QDateTime::currentDateTime().toMSecsSinceEpoch(); long int interval = dTime - lastTime; lastTime = dTime; @@ -153,7 +110,7 @@ bool CTrigDetector::filterTrig() return true; if (interval < 350) { qWarning() << "trig less than interval"; - if (nCount++ > nTickCount) + if (nCount++ > lpSysConfig::instance()->m_TrigerFilter) { qWarning() << "correct"; nCount = 0; @@ -166,19 +123,4 @@ bool CTrigDetector::filterTrig() return true; } -void CTrigDetector::readSettingFile() -{ - if (m_setting){ - QString m_str = "/TrigDetector/"; - nTickCount = m_setting->value(m_str + "nTickFilter", 10).toInt(); - } -} - -void CTrigDetector::writeSettingFile() -{ - if (m_setting){ - QString m_str = "/TrigDetector/"; - m_setting->setValue(m_str + "nTickFilter", nTickCount); - } -} diff --git a/src/lpMain/TrigDetector.h b/src/lpMain/TrigDetector.h index 71c48e8..58f5eef 100644 --- a/src/lpMain/TrigDetector.h +++ b/src/lpMain/TrigDetector.h @@ -11,7 +11,6 @@ public: CTrigDetector(QObject *parent =0); ~CTrigDetector(); - void setCheckInterval(int nInterval) { m_nCheckInterval = nInterval; } @@ -39,8 +38,6 @@ public: bool isRunOk(); bool isWaitForTrig(); bool filterTrig(); - void readSettingFile(); - void writeSettingFile(); signals: void sgErrorTrig(int); void sgSnapImage(); @@ -59,9 +56,6 @@ private: int m_nTimerID{0}; class QTimer *m_pTimer{ nullptr }; - QSettings *m_setting{ nullptr }; - int nTickCount{0}; - int nCount{0}; long long lastTime{0}; }; diff --git a/src/lpMain/WfColossus.cpp b/src/lpMain/WfColossus.cpp index f408447..2638fc2 100644 --- a/src/lpMain/WfColossus.cpp +++ b/src/lpMain/WfColossus.cpp @@ -138,9 +138,7 @@ bool WfColossus::selModel(int nIndex, QString strModel) } m_CurRunTaskName[nIndex] = strModel; - pSolutions->SetRunTask(nIndex, strName); - QSettings setTaskInfo("TaskInfo.ini", QSettings::IniFormat); setTaskInfo.setValue("StationNum", m_CurRunTaskName.size()); @@ -149,39 +147,6 @@ bool WfColossus::selModel(int nIndex, QString strModel) setTaskInfo.setValue(QString("Station_%1").arg(it.key()), *it); } emit sgSetModel(nIndex, strModel); - -// IDetectorTask *pTasks[c_nMaxTask]; -// int n = pSolutions->EnumTask(pTasks, c_nMaxTask); -// //qDebug() << "all task count = " << n; -// bool bChanged = false; -// for (int i = 0; i < n; i++) { -// IDetectorTask* pTask = pTasks[i]; -// PLP_DETECTOR_TASK tInfo = pTask->GetTaskInfo(); -// QString str = tInfo->strName; -// QStringList l = splitBySymbol(str); -// if (l.size() != 2) { -// continue; -// } -// if (l.first().toInt() == nIndex) { -// if (tInfo->bIsRun == true && tInfo->strName != strName) { -// bChanged = true; -// } -// pTask->GetTaskInfo()->bIsRun = false; -// if (l.last() == strModel) { -// pTask->GetTaskInfo()->bIsRun = true; -// } -// } -// } -// if (bChanged == true) { -// int a = 0; -// int nID = ptrSolMgr()->GetRunSolution()->GetID(); -// if (nID == 2) -// int b = 0; -// qDebug() << " change models ID:" << nID; -// ptrSolMgr()->SetRunSolution(nID); -// } - //if () - /*m_IsModify = true;*/ return true; } @@ -353,25 +318,6 @@ class IDetectorSolution * WfColossus::ptrRunSolution() const return NULL; } -// bool WfColossus::getOnlineModel() const -// { -// IDetectorSystemInfo * p; -// m_pDetEngine->GetDataInterface(SYSTEMINFO, (void**)&p); -// if (p) { -// return p->GetValue("OnlineMode").toBool(); -// } -// return false; -// } -// -// void WfColossus::setOnlineModel(bool b) -// { -// IDetectorSystemInfo * p; -// m_pDetEngine->GetDataInterface(SYSTEMINFO, (void**)&p); -// if (p) { -// p->SetValue("OnlineMode", b); -// } -// } - bool WfColossus::getBatchModel() const { IDetectorSystemInfo * p; diff --git a/src/lpMain/WfCtrl.cpp b/src/lpMain/WfCtrl.cpp index eb4a46d..47c5288 100644 --- a/src/lpMain/WfCtrl.cpp +++ b/src/lpMain/WfCtrl.cpp @@ -8,6 +8,7 @@ #include "WfColossus.h" #include "WorkChecker.h" #include "QZkJsonParser.h" +#include "lpSysConfig.h" #pragma execution_character_set("utf-8") CWfCtrl::CWfCtrl(ICoreCtrl* p1, WfColossus* p3) @@ -17,8 +18,7 @@ CWfCtrl::CWfCtrl(ICoreCtrl* p1, WfColossus* p3) m_pConnectChecker = new WorkChecker; m_pCoreCtrl = p1; m_pColossus = p3; - m_setting = new QSettings(QCoreApplication::applicationDirPath()+"\\user\\systemfile.ini", QSettings::IniFormat); - readSettingFile(); + QString path; m_pWfDb = new QSqliteWheelHubWf(path + "//user//"); initStation(); @@ -26,31 +26,29 @@ CWfCtrl::CWfCtrl(ICoreCtrl* p1, WfColossus* p3) m_nOnlineMode = systemIniFile.value("OnlineMode").toBool(); { QString strErrorPath = QCoreApplication::applicationDirPath()+"/errorImage/"; -// QDiskCleanThread *pDCleanThread = new QDiskCleanThread; -// pDCleanThread->setUseFlag(nCheckThreadEable); -// pDCleanThread->setDays(nCheckImgFileDays); -// pDCleanThread->SetImgStorageFolder(strErrorPath); -// pDCleanThread->setMiniSize(nMinSpaceSize); -// pDCleanThread->start(); -// m_pDCThreadList.append(pDCleanThread); -// -// -// QString strRltImgPath = QCoreApplication::applicationDirPath() + "/DBFiles/Images/"; -// QDiskCleanThread *pCleanDir = new QDiskCleanThread; -// pCleanDir->setModel(CleanDir); -// pCleanDir->setSleepS(3600); -// pCleanDir->setUseFlag(nCheckThreadEable); -// pCleanDir->setDays(nCheckDirDays); -// pCleanDir->SetImgStorageFolder(strRltImgPath); -// pCleanDir->setMiniSize(nMinSpaceSize); -// pCleanDir->start(); -// m_pDCThreadList.append(pCleanDir); + QDiskCleanThread *pDCleanThread = new QDiskCleanThread; + pDCleanThread->setUseFlag(lpSysConfig::instance()->m_CheckEnable); + pDCleanThread->setDays(lpSysConfig::instance()->m_CheckFileDays); + pDCleanThread->SetImgStorageFolder(strErrorPath); + pDCleanThread->setMiniSize(lpSysConfig::instance()->m_MinSpaceSizeG); + pDCleanThread->start(); + m_pDCThreadList.append(pDCleanThread); + + 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); + pCleanDir->setMiniSize(lpSysConfig::instance()->m_MinSpaceSizeG); + pCleanDir->start(); + m_pDCThreadList.append(pCleanDir); } } CWfCtrl::~CWfCtrl() -{ - writeSettingFile(); +{//此处线程需要修改 响应时间过慢 if (m_pDCThreadList.size() > 0){ for (int nIndex = 0; nIndex < m_pDCThreadList.size(); nIndex++) { @@ -66,7 +64,6 @@ CWfCtrl::~CWfCtrl() } } m_pDCThreadList.clear(); - //m_pColossus->setOnlineModel(m_nOnlineMode); if (m_pConnectChecker) { delete m_pConnectChecker; @@ -82,10 +79,6 @@ CWfCtrl::~CWfCtrl() qDeleteAll(m_mpModels); m_mpModels.clear(); qDebug() << "~CWfCtrl"; - if (m_setting){ - delete m_setting; - m_setting = NULL; - } } void CWfCtrl::ISetOnlineModel(bool b) @@ -161,12 +154,10 @@ bool CWfCtrl::initStation() if (camOpt.deviceType != 100)//虚拟相机模式下不开启定时删除图像的模式 { QDiskCleanThread *pDCleanThread = new QDiskCleanThread; - pDCleanThread->setUseFlag(nCheckThreadEable); - pDCleanThread->setDays(nCheckImgFileDays); - //QString strErrorPath = QCoreApplication::applicationDirPath() + "//errorImage//"; - //pDCleanThread->SetImgStorageFolder(strErrorPath); + pDCleanThread->setUseFlag(lpSysConfig::instance()->m_CheckEnable); + pDCleanThread->setDays(lpSysConfig::instance()->m_CheckFileDays); pDCleanThread->SetImgStorageFolder(camOpt.folder); - pDCleanThread->setMiniSize(nMinSpaceSize); + pDCleanThread->setMiniSize(lpSysConfig::instance()->m_MinSpaceSizeG); pDCleanThread->start(); m_pDCThreadList.append(pDCleanThread); } @@ -263,7 +254,7 @@ bool CWfCtrl::ISelModel(int nStation, QString strModel) pStation->setCurrentModel(strModel); if (m_pColossus) { //需要测试 - m_pColossus->selModel(nStation, strModel/*pStation->currentRunningModel()*/); + m_pColossus->selModel(nStation, strModel); //m_pColossus->ReSetModifyState(); } } @@ -339,52 +330,3 @@ bool CWfCtrl::IUpdateModelInfo() } return true; } - -QString CWfCtrl::IGetCommName() -{ - return "null com"; -} - -bool CWfCtrl::IGetUserInfo(QString& user, int& level) -{ -// if (!m_pMainBack) { -// return false; -// } -// return m_pMainBack->IGetUserInfo(user, level); - - if (m_strUserName.isEmpty()) - user = QObject::tr("未登录"); - else - user = m_strUserName; - level = m_nLevel; - return true; -} - -void CWfCtrl::ISetUserInfo(QString& user, int& level) -{ - m_strUserName = user; - m_nLevel = level; -} - -void CWfCtrl::readSettingFile() -{ - if (m_setting){ - QString m_str = "/CheckThread/"; - nCheckImgFileDays = m_setting->value(m_str + "days", 7).toInt(); - nCheckDirDays = m_setting->value(m_str + "days_dir", 30).toInt(); - nCheckThreadEable = m_setting->value(m_str + "IsUse", true).toBool(); - nMinSpaceSize = m_setting->value(m_str + "spacesize", 10).toInt(); - } -} - -void CWfCtrl::writeSettingFile() -{ - if (m_setting){ - QString m_str = "/CheckThread/"; - m_setting->setValue(m_str + "days", nCheckImgFileDays); - m_setting->setValue(m_str + "days_dir", nCheckDirDays); - m_setting->setValue(m_str + "IsUse", nCheckThreadEable); - m_setting->setValue(m_str + "spacesize", nMinSpaceSize); - } -} - diff --git a/src/lpMain/WfCtrl.h b/src/lpMain/WfCtrl.h index 6900aef..00c85d2 100644 --- a/src/lpMain/WfCtrl.h +++ b/src/lpMain/WfCtrl.h @@ -21,9 +21,6 @@ public: virtual void ISetOnlineModel(bool); virtual bool IBatchModel(); virtual bool IConnectStatus(); - virtual QString IGetCommName(); - virtual void ISetUserInfo(QString& user, int& level); - virtual bool IGetUserInfo(QString& user, int& level); virtual void registerConnect(); virtual QStringList IGetStationKeys(); virtual IStation* IGetStationById(int); @@ -44,26 +41,15 @@ private: bool initModel(); bool initCurrentModel(); static QString genModelName(int nIndex, QString strModel); - void readSettingFile(); - void writeSettingFile(); + private: bool m_nOnlineMode{ false }; class WorkChecker *m_pConnectChecker{ nullptr }; QMap m_pStationMap; QMap m_mpModels; ICoreCtrl *m_pCoreCtrl{ nullptr }; - IMainCallback *m_pMainBack{ nullptr }; WfColossus *m_pColossus{ nullptr }; class QSqliteWheelHubWf *m_pWfDb{ nullptr }; - QList m_pDCThreadList; - QSettings *m_setting{ nullptr }; - int nCheckImgFileDays;//ⱣͼƬʱ䣨bmpʽͼƬ 㷨Զģ2~5MС - int nCheckDirDays;//ⱣͼƬļгʱ䣨ͼ 100kСͼƬ - bool nCheckThreadEable; - int nMinSpaceSize; - - QString m_strUserName; - int m_nLevel{ 0 }; }; #endif diff --git a/src/lpMain/lp_singleton_base.h b/src/lpMain/lp_singleton_base.h new file mode 100644 index 0000000..8466c28 --- /dev/null +++ b/src/lpMain/lp_singleton_base.h @@ -0,0 +1,54 @@ +#ifndef _H_LP_SINGLETON_BASE_H_ +#define _H_LP_SINGLETON_BASE_H_ + +#include +#include + +template +class lp_singleton_base +{ +public: + static T* instance() + { + T *sin = s_this.load(std::memory_order_acquire); + + if (!sin) { + std::lock_guard locker(s_mutex); + sin = s_this.load(std::memory_order_relaxed); + if (!sin) { + sin = new T; + s_this.store(sin, std::memory_order_release); + } + } + + return sin; + } + + static void uninstance() + { + T *sin = s_this.load(std::memory_order_relaxed); + if (sin) { + std::lock_guard locker(s_mutex); + delete sin; + sin = nullptr; + } + } + +protected: + lp_singleton_base() = default; + virtual ~lp_singleton_base() = default; +private: + lp_singleton_base(const T&) = delete; + T& operator=(const T&) = delete; + + static std::atomic s_this; + static std::mutex s_mutex; +}; + +template +std::atomic lp_singleton_base::s_this; + +template +std::mutex lp_singleton_base::s_mutex; + +#endif \ No newline at end of file diff --git a/tpvs17/lpMain/CMainWin.cpp b/tpvs17/lpMain/CMainWin.cpp index 7bfffc0..6bdf1fc 100644 --- a/tpvs17/lpMain/CMainWin.cpp +++ b/tpvs17/lpMain/CMainWin.cpp @@ -8,7 +8,8 @@ #include #include "quserinfo_global.h" #include "Serialport_global.h" -#include "QProcess" +#include +#include "lpSysConfig.h" #define LEAPER_LOGO ":/leaper/Resource/app.png" #define DELETE_POINTER(p) if (p) {delete p; p = NULL;} @@ -21,8 +22,11 @@ CMainWin::CMainWin(QWidget *parent) ui.setupUi(this); lpSysLog::instance()->Init(); - readConfig(); + lpSysConfig::instance()->readConfig(); + lpSysConfig::instance()->writeConfig(); + SetLanguage(m_strCurLanguage); + SYSLOG_STATUS << "ϵͳ"; { QString strPath = QCoreApplication::applicationDirPath(); @@ -31,9 +35,6 @@ CMainWin::CMainWin(QWidget *parent) dbDir.mkpath(DBFilePath); m_db = new StationDB(DBFilePath + "\\AntMan.db"); m_db->InitDatabase(); - QSettings setting(strPath + "\\user\\systemfile.ini", QSettings::IniFormat); - connect(this, SIGNAL(sgShowLog(int, QString)), this, SLOT(onShowLog(int, QString))); - SYSLOG_STATUS << "ϵͳ"; } m_pCameraTrig = new AutoTrigger; @@ -84,13 +85,13 @@ CMainWin::CMainWin(QWidget *parent) m_pSerialPort->loadAnalysefunc(this, &CMainWin::onAppanalysis); //رտܵĴʹ - QString strDefaultPort = "COM6"; - - bool bOpen = m_pSerialPort->OpenCom(strDefaultPort, QString::number(115200)); + QString strDefaultPort = lpSysConfig::instance()->m_ComName; + int baut = lpSysConfig::instance()->m_Baut; + bool bOpen = m_pSerialPort->OpenCom(strDefaultPort, QString::number(baut)); if (bOpen == false) { - QMessageBox infobox(QMessageBox::Information, QString(QObject::tr("ʾ")), QString("error %1 %2 ").arg(strDefaultPort).arg(115200), QMessageBox::Yes | QMessageBox::No, NULL); - infobox.setWindowIcon(QIcon(":/image/leaper")); + QMessageBox infobox(QMessageBox::Information, QString(QObject::tr("ʾ")), QString("Com %1 %2 open failed").arg(strDefaultPort).arg(baut), QMessageBox::Yes | QMessageBox::No, NULL); + infobox.setWindowIcon(QIcon(LEAPER_LOGO)); infobox.exec(); } connect(&m_HeartBit, SIGNAL(timeout()), this, SLOT(onHeardBit())); @@ -98,6 +99,7 @@ CMainWin::CMainWin(QWidget *parent) } } + //ť¼ connect(ui.actionSetting, SIGNAL(triggered()), this, SLOT(onActionClicked())); connect(ui.actionManage, SIGNAL(triggered()), this, SLOT(onActionClicked())); connect(ui.actionTest, SIGNAL(triggered()), this, SLOT(onActionClicked())); @@ -106,11 +108,13 @@ CMainWin::CMainWin(QWidget *parent) connect(ui.action, SIGNAL(triggered()), this, SLOT(onActionClicked())); connect(ui.main_Login_action, SIGNAL(triggered()), this, SLOT(onActionClicked())); connect(ui.main_action_userManager, SIGNAL(triggered()), this, SLOT(onActionClicked())); - + + //ͼչʾ connect(this, SIGNAL(sgShowImg(int, QImage)), this, SLOT(onShowImage(int, QImage))); connect(this, SIGNAL(sgSelModel(int, QString)), this, SLOT(onSelModel(int, QString))); - m_TimerID_Status = startTimer(1000); + connect(this, SIGNAL(sgShowLog(int, QString)), this, SLOT(onShowLog(int, QString))); + m_TimerID_Status = startTimer(1000); ui.main_action_userManager->setVisible(false); ui.action->setVisible(false); @@ -196,7 +200,6 @@ void CMainWin::IVariantMapToUI(emTpUiDataType dataType, const QString& camKey, c SYSLOG_STATUS << QString("λ%1յ㷨,ǰͺΪ[%2],ͽǶΪ:%3").arg(pStation->stationId()).arg(pStation->currentRunningModel()).arg(dAngle); emit sgShowImg(pStation->stationId(),image); emit sgShowLog(pStation->stationId(), strResult); - //emit pStation->sgPrint2Window(strResult); pStation->revResult(); QString str2 = pStation->currentRunningModel(); @@ -786,12 +789,6 @@ void CMainWin::rmTranslator() } } -void CMainWin::readConfig() -{ - QSettings setting("language.ini", QSettings::IniFormat); - m_strCurLanguage = setting.value("language", "Chinese").toString(); -} - void CMainWin::writeConfig() { QSettings setting("language.ini", QSettings::IniFormat); @@ -879,12 +876,8 @@ Q_SLOT void CMainWin::onChangeUI(QString strUsr, int nLevel) } Q_SLOT void CMainWin::onLogInOut(QString strName, int level, int state) { - if (m_pWfCtrl) { - m_pWfCtrl->ISetUserInfo(strName, level); - onChangeUI(strName, level); - m_strUserName = strName; - } - + onChangeUI(strName, level); + m_strUserName = strName; if (state == 0) { ui.main_Login_action->setText(QObject::tr("ע ")); } diff --git a/tpvs17/lpMain/CMainWin.h b/tpvs17/lpMain/CMainWin.h index 4e44905..eff5f60 100644 --- a/tpvs17/lpMain/CMainWin.h +++ b/tpvs17/lpMain/CMainWin.h @@ -131,6 +131,7 @@ private: QAboutUI m_aboutWid; QString m_strUserName; + QString m_strComName; }; #endif diff --git a/tpvs17/lpMain/QModelMangerUI.cpp b/tpvs17/lpMain/QModelMangerUI.cpp index fea158b..c2b95f8 100644 --- a/tpvs17/lpMain/QModelMangerUI.cpp +++ b/tpvs17/lpMain/QModelMangerUI.cpp @@ -6,7 +6,7 @@ #include "QPLCIndexUI.h" #include "WfModel.h" #include "QAddModeUI.h" - +#define LP_WF_PLC_MAX_INDEX 100 #pragma execution_character_set("utf-8") QModelMangerUI::QModelMangerUI(QWidget *parent) : QWidget(parent) @@ -88,10 +88,10 @@ Q_SLOT void QModelMangerUI::onButtonClicked() if (QMessageBox::Yes == msgBox.exec()) { bool b = m_pCtrl->IDeleteModel(currentTab(), strModel); if (!b) { - ui.mLblModelState->setText(tr("delete %1 failed!").arg(strModel)); + ui.mLblModelState->setText(QObject::tr("delete %1 failed!").arg(strModel)); } else { - ui.mLblModelState->setText(tr("delete %1 successful!").arg(strModel)); + ui.mLblModelState->setText(QObject::tr("delete %1 successful!").arg(strModel)); } } } @@ -126,10 +126,34 @@ Q_SLOT bool QModelMangerUI::OnCellDoubleClicked(const QModelIndex &index) if (dlg.exec() == QDialog::Accepted) { int nIndex = dlg.getModelIndex(); - pModel->nIndex = nIndex; + QStringList strList = pStation->modelList(); + bool bExist = false; + QString strExistModel; + foreach(QString var, strList) { + if (var == strModel) + continue; + if (nIndex != LP_WF_PLC_MAX_INDEX && nIndex == pStation->wfModel(var)->nIndex) { + bExist = true; + strExistModel = var; + break; + } + } + if (bExist == true) + { + QMessageBox msgWarning(QMessageBox::Warning, QObject::tr(""), strName + QObject::tr("޸ʧ,%1ֵͻ").arg(strExistModel), QMessageBox::Yes); + msgWarning.setWindowIcon(QIcon(":/leaper/Resource/app.png")); + msgWarning.setButtonText(QMessageBox::Yes, QObject::tr("ȷ")); + msgWarning.exec(); + + ui.mLblModelState->setText(QObject::tr(" %1 PLCֵ޸ʧܣ").arg(strModel)); + return false; + } + + pModel->nIndex = nIndex; if (m_pCtrl) m_pCtrl->ISaveModel(stationID, strModel); + ui.mLblModelState->setText(QObject::tr(" %1 PLCֵ޸ijɹ").arg(strModel)); } } return true; @@ -176,11 +200,7 @@ void QModelMangerUI::showEvent(QShowEvent *event) void QModelMangerUI::closeEvent(QCloseEvent *event) { -// qDebug() << "start save solution"; -// if (m_pColossus && m_pWfCtrl) { -// m_pColossus->saveTask(m_pCtrl->IGetModelInfos()); -// } -// qDebug() << "finish save solution"; + } void QModelMangerUI::onInitModelList(IWfCtrl *pCtrl) diff --git a/tpvs17/lpMain/lpMain.vcxproj b/tpvs17/lpMain/lpMain.vcxproj index 465f999..d8ac41e 100644 --- a/tpvs17/lpMain/lpMain.vcxproj +++ b/tpvs17/lpMain/lpMain.vcxproj @@ -136,6 +136,7 @@ + @@ -158,6 +159,10 @@ + + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\3part\customgui\include;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\src\lpBase + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\3part\customgui\include;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\src\lpBase + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\3part\customgui\include;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\src\lpBase .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql @@ -190,6 +195,7 @@ .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\3part\customgui\include;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\src\lpBase .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql + .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSerialBus;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtSql;.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\3part\customgui\include;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\src\lpBase diff --git a/tpvs17/lpMain/lpMain.vcxproj.filters b/tpvs17/lpMain/lpMain.vcxproj.filters index eec8316..66520be 100644 --- a/tpvs17/lpMain/lpMain.vcxproj.filters +++ b/tpvs17/lpMain/lpMain.vcxproj.filters @@ -41,9 +41,6 @@ {d4ee84cc-3ae8-4d69-b15a-24ed868a2f7a} - - {aeffe6ee-5f98-4bbf-b0fc-bada2f76bf5d} - {460a87f9-e992-4ca0-8545-eea6c2194b2b} @@ -130,6 +127,9 @@ Source Files + + Source Files + @@ -207,6 +207,9 @@ Header Files + + Header Files + @@ -253,6 +256,9 @@ lpMain + + Header Files + diff --git a/tpvs17/lpMain/lpSysConfig.cpp b/tpvs17/lpMain/lpSysConfig.cpp new file mode 100644 index 0000000..3898116 --- /dev/null +++ b/tpvs17/lpMain/lpSysConfig.cpp @@ -0,0 +1,43 @@ +#include "lpSysConfig.h" +#include +#include +lpSysConfig::lpSysConfig(QObject *parent) + : QObject(parent) +{ + m_AppPath = QApplication::applicationDirPath(); + m_CfgPath = m_AppPath + QString("//user//systemConfig.ini"); +} + +lpSysConfig::~lpSysConfig() +{ +} + +void lpSysConfig::readConfig() +{ + QSettings setting(m_CfgPath, QSettings::IniFormat); + m_CurLanguage = setting.value("language/select", "Chinese").toString(); + m_ComName = setting.value("COM/Port", "COM3").toString(); + m_Baut = setting.value("COM/Baute", 115200).toInt(); + + m_CheckFileDays = setting.value("CheckThread/days", 7).toInt(); + m_CheckDirDays = setting.value("CheckThread/days_dir", 30).toInt(); + m_CheckEnable = setting.value("CheckThread/Enable", false).toBool(); + m_MinSpaceSizeG = setting.value("CheckThread/spacesize", 10).toInt();//G + + m_TrigerFilter = setting.value("TrigDetector/FilterTime", 10).toInt(); +} + +void lpSysConfig::writeConfig() +{ + QSettings setting(m_CfgPath, QSettings::IniFormat); + setting.setValue("language/select", m_CurLanguage); + setting.setValue("COM/Port", m_ComName); + setting.setValue("COM/Baute", m_Baut); + + setting.setValue("CheckThread/days", m_CheckFileDays); + setting.setValue("CheckThread/days_dir", m_CheckDirDays); + setting.setValue("CheckThread/Enable", m_CheckEnable); + setting.setValue("CheckThread/spacesize", m_MinSpaceSizeG);//G + + setting.setValue("TrigDetector/FilterTime", m_TrigerFilter); +} diff --git a/tpvs17/lpMain/lpSysConfig.h b/tpvs17/lpMain/lpSysConfig.h new file mode 100644 index 0000000..594b547 --- /dev/null +++ b/tpvs17/lpMain/lpSysConfig.h @@ -0,0 +1,34 @@ +#ifndef _H_LPSYSCONFIG_H_ +#define _H_LPSYSCONFIG_H_ + +#include +#include "lp_singleton_base.h" +class lpSysConfig : public QObject,public lp_singleton_base +{ + Q_OBJECT + +public: + lpSysConfig(QObject *parent = nullptr); + ~lpSysConfig(); + + void readConfig(); + void writeConfig(); + +public: + QString m_ComName{"COM3"}; + int m_Baut{ 115200 }; + QString m_CurLanguage{"Chinese"};//Ӣ + + QString m_AppPath;//ӦóĿ¼ + + int m_CheckFileDays{ 7 };//ⱣͼƬʱ䣨bmpʽͼƬ 㷨Զģ2~5MС + int m_CheckDirDays{ 30 };//ⱣͼƬļгʱ䣨ͼ 100kСͼƬ + bool m_CheckEnable{ false }; + int m_MinSpaceSizeG{ 10 };//G + + int m_TrigerFilter{ 10 }; +private: + QString m_CfgPath; +}; + +#endif diff --git a/tpvs17/valveDetector/valveDetector.cpp b/tpvs17/valveDetector/valveDetector.cpp index 6bb130c..d824c70 100644 --- a/tpvs17/valveDetector/valveDetector.cpp +++ b/tpvs17/valveDetector/valveDetector.cpp @@ -459,7 +459,8 @@ double tempScoreShoot(Mat &_img, Mat &template_img, detectMode mode) return 0; } } - + qDebug() << "end tempScoreShoot"; + return 0; } //template //double pointDis(const _Point& i, const _Point& j)