diff --git a/release/气门芯定位检测更新内容.txt b/release/气门芯定位检测更新内容.txt index 8a9d080..5006c66 100644 --- a/release/气门芯定位检测更新内容.txt +++ b/release/气门芯定位检测更新内容.txt @@ -34,4 +34,18 @@ 2021-10-20 2 1、增加视场标定圆大小半径参数保存到配置文件中,需要自定义大小时,修改配置文件中的圆半径参数即可。 -参数文件位置:user/globalConfig.json 文件夹内,pointCircle参数所对应的数值。默认最小是20 \ No newline at end of file +参数文件位置:user/globalConfig.json 文件夹内,pointCircle参数所对应的数值。默认最小是20 + +2021-10-22 +1、串口通讯加入线程保护,防止UI执行在多线程中引发崩溃 +2021-10-25 +1、修复模板标定页面引发的崩溃闪退bug +2021-10-25 2 +1、修复标定页面XY偏移坐标不能输入小数点问题 +2021-10-26 +1、增加输出xy坐标对调功能 +2、增加拍照触发滤波参数 +3、修复PLC索引值删除型号时没清除已保存的索引参数问题,增加启动校验索引值是否有效 +4、修复在线PLC型号切换不成功bug +5、lpengine模块增加不存在的task失败信息输出 +6、修复型号手动切换和在线切换发现的bug \ No newline at end of file diff --git a/runner17/Enchanter.exe b/runner17/Enchanter.exe index 0b7a7e5..ed0378f 100644 Binary files a/runner17/Enchanter.exe and b/runner17/Enchanter.exe differ diff --git a/runner17/Enchanterd.exe b/runner17/Enchanterd.exe index 65358b0..1521a18 100644 Binary files a/runner17/Enchanterd.exe and b/runner17/Enchanterd.exe differ diff --git a/runner17/Enchanterd.ilk b/runner17/Enchanterd.ilk deleted file mode 100644 index 0bc2655..0000000 Binary files a/runner17/Enchanterd.ilk and /dev/null differ diff --git a/runner17/tpCam_100.dll b/runner17/tpCam_100.dll index f6e5282..9a98d1a 100644 Binary files a/runner17/tpCam_100.dll and b/runner17/tpCam_100.dll differ diff --git a/src/lpMain/WfCtrl.cpp b/src/lpMain/WfCtrl.cpp index bbe5eb4..36dfb3f 100644 --- a/src/lpMain/WfCtrl.cpp +++ b/src/lpMain/WfCtrl.cpp @@ -87,6 +87,7 @@ bool CWfCtrl::initStation() QMap solutionMap = pSolutionMgr->GetAllSolutions(); int nIndex = 1; + bool bPLCIndex = false; for (QMap::iterator it = solutionMap.begin(); it != solutionMap.end(); ++it) { QString key = it.key(); IStation *pStation = new Station(this); @@ -104,11 +105,30 @@ bool CWfCtrl::initStation() continue; pStation->addModel(var); } + if (!m_PLCIndexs.contains(key)) { + m_PLCIndexs.insert(key, QMap()); + } + else { + QMap>::iterator it = m_PLCIndexs.find(key); + if (it != m_PLCIndexs.end()) + { + QStringList keys = it->keys(); + foreach(QString var, keys) + { + if (!lstModels.contains(var)) + { + (*it).remove(var); + bPLCIndex = true; + } + } + } + } } m_pStationMap.insert(key, pStation); - if (!m_PLCIndexs.contains(key)) { - m_PLCIndexs.insert(key, QMap()); - } + } + if (bPLCIndex == true) + { + writeIndexParam(); } return true; } @@ -182,6 +202,13 @@ bool CWfCtrl::IDeleteModel(QString nStation, QString strModel) } } } + + QMap>::iterator it = m_PLCIndexs.find(nStation); + if (it != m_PLCIndexs.end()) + { + (*it).remove(strModel); + } + writeIndexParam(); return true; } diff --git a/src/lpMain/lpImageCaliUI.cpp b/src/lpMain/lpImageCaliUI.cpp index 4ea29ec..cc21239 100644 --- a/src/lpMain/lpImageCaliUI.cpp +++ b/src/lpMain/lpImageCaliUI.cpp @@ -90,6 +90,7 @@ void lpImageCaliUI::showEvent(QShowEvent *event) ui.m_lineEdit_Xoffset->setText(QString("%1").arg(lpGlobalConfig::instance()->m_StationXOffset_1)); ui.m_lineEdit_Yoffset->setText(QString("%1").arg(lpGlobalConfig::instance()->m_StationYOffset_1)); + ui.checkBox_XY_1->setChecked(lpGlobalConfig::instance()->m_StationXYTrans_1);//输出坐标取反 m_point1_1 = lpGlobalConfig::instance()->point1_1; m_point2_1 = lpGlobalConfig::instance()->point2_1; @@ -124,6 +125,7 @@ void lpImageCaliUI::showEvent(QShowEvent *event) ui.m_lineEdit_Xoffset_2->setText(QString("%1").arg(lpGlobalConfig::instance()->m_StationXOffset_2)); ui.m_lineEdit_Yoffset_2->setText(QString("%1").arg(lpGlobalConfig::instance()->m_StationYOffset_2)); + ui.checkBox_XY_2->setChecked(lpGlobalConfig::instance()->m_StationXYTrans_2);//输出坐标取反 m_point1_2 = lpGlobalConfig::instance()->point1_2; m_point2_2 = lpGlobalConfig::instance()->point2_2; @@ -238,8 +240,9 @@ Q_SLOT void lpImageCaliUI::onButtonClicked() double length = ui.m_lineEdit_length->text().toDouble(); double scale = length * 1.0 / ( pixlength > 0 ? pixlength:length); ui.m_lineEdit_scale->setText(QString("%1").arg(scale)); - lpGlobalConfig::instance()->m_StationXOffset_1 = ui.m_lineEdit_Xoffset->text().toInt(); - lpGlobalConfig::instance()->m_StationYOffset_1 = ui.m_lineEdit_Yoffset->text().toInt(); + lpGlobalConfig::instance()->m_StationXYTrans_1 = ui.checkBox_XY_1->isChecked();//输出坐标取反 + lpGlobalConfig::instance()->m_StationXOffset_1 = ui.m_lineEdit_Xoffset->text().toDouble(); + lpGlobalConfig::instance()->m_StationYOffset_1 = ui.m_lineEdit_Yoffset->text().toDouble(); lpGlobalConfig::instance()->point1_1 = m_point1_1; lpGlobalConfig::instance()->point2_1 = m_point2_1; lpGlobalConfig::instance()->fLength_1 = length; @@ -252,8 +255,9 @@ Q_SLOT void lpImageCaliUI::onButtonClicked() double length = ui.m_lineEdit_length_2->text().toDouble(); double scale = length * 1.0 / (pixlength > 0 ? pixlength : length); ui.m_lineEdit_scale_2->setText(QString("%1").arg(scale)); - lpGlobalConfig::instance()->m_StationXOffset_2 = ui.m_lineEdit_Xoffset_2->text().toInt(); - lpGlobalConfig::instance()->m_StationYOffset_2 = ui.m_lineEdit_Yoffset_2->text().toInt(); + lpGlobalConfig::instance()->m_StationXYTrans_2 = ui.checkBox_XY_2->isChecked();//输出坐标取反 + lpGlobalConfig::instance()->m_StationXOffset_2 = ui.m_lineEdit_Xoffset_2->text().toDouble(); + lpGlobalConfig::instance()->m_StationYOffset_2 = ui.m_lineEdit_Yoffset_2->text().toDouble(); lpGlobalConfig::instance()->point1_2 = m_point1_2; lpGlobalConfig::instance()->point2_2 = m_point2_2; lpGlobalConfig::instance()->fLength_2 = length; diff --git a/src/lpMain/lpImageCaliUI.ui b/src/lpMain/lpImageCaliUI.ui index d2ac58d..976431c 100644 --- a/src/lpMain/lpImageCaliUI.ui +++ b/src/lpMain/lpImageCaliUI.ui @@ -284,6 +284,24 @@ + + + + + + XY坐标输出: + + + + + + + 位置互换 + + + + + @@ -572,6 +590,24 @@ + + + + + + XY坐标输出: + + + + + + + 位置互换 + + + + + diff --git a/src/lpbdesigner/MainFrame.cpp b/src/lpbdesigner/MainFrame.cpp index 35cb94a..e1bdff4 100644 --- a/src/lpbdesigner/MainFrame.cpp +++ b/src/lpbdesigner/MainFrame.cpp @@ -308,9 +308,6 @@ bool CMainFrame::InitGraphView() bool CMainFrame::InitCurrentTask() { - if (!InitCurrentNode()) - return false; - ui->tableWidget->setRowCount(0); ui->tableWidget->clearContents(); ui->tableWidget_2->setRowCount(0); @@ -319,6 +316,10 @@ bool CMainFrame::InitCurrentTask() ui->gv_output->clear(); ui->textEdit->clear(); + + if (!InitCurrentNode()) + return false; + IDetectorTask* ptask = currentTask(); if (ptask) { @@ -960,9 +961,7 @@ bool CMainFrame::OnSelectAlgo() item->setText(strText); return true; } - } - } return true; @@ -1187,10 +1186,13 @@ bool CMainFrame::OnEditParam() m_tParamDlg.setWindowModality(Qt::ApplicationModal); m_tParamDlg.setAttribute(Qt::WA_ShowModal, true); m_tParamDlg.ShowParamDlg(pParam); - QString st = _pOldTask->GetTaskInfo()->strName; - if (!m_TaskChangeList.contains(st)) + if (_pOldTask) { - m_TaskChangeList.append(st); + QString st = _pOldTask->GetTaskInfo()->strName; + if (!m_TaskChangeList.contains(st)) + { + m_TaskChangeList.append(st); + } } return true; } diff --git a/src/lpbengine/CDetectorEngine.cpp b/src/lpbengine/CDetectorEngine.cpp index c1dcf7d..5eb81c9 100644 --- a/src/lpbengine/CDetectorEngine.cpp +++ b/src/lpbengine/CDetectorEngine.cpp @@ -191,6 +191,11 @@ void CDetectorEngine::detectFuncByName(cv::Mat srcImg, QString solutionName, QSt rltMap.insert("taskID", pTask->GetID()); rltMap.insert("originImage", EngineBase::convMat2QImage(srcImg)); } + else { + rltMap.insert("solutionName", pSolution->GetSolutionName()); + rltMap.insert("taskName", modeName); + rltMap.insert("taskCali", false);//模板未标定 + } } int nTime = mTime.elapsed(); diff --git a/tpvs17/Enchanter/Enchanter.vcxproj b/tpvs17/Enchanter/Enchanter.vcxproj index 30b0e78..601ae40 100644 --- a/tpvs17/Enchanter/Enchanter.vcxproj +++ b/tpvs17/Enchanter/Enchanter.vcxproj @@ -131,6 +131,7 @@ .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets + diff --git a/tpvs17/Enchanter/Enchanter.vcxproj.filters b/tpvs17/Enchanter/Enchanter.vcxproj.filters index 7444de7..7faefa4 100644 --- a/tpvs17/Enchanter/Enchanter.vcxproj.filters +++ b/tpvs17/Enchanter/Enchanter.vcxproj.filters @@ -54,6 +54,9 @@ Header Files + + Header Files + diff --git a/tpvs17/Enchanter/main.cpp b/tpvs17/Enchanter/main.cpp index 2499b46..58b2c75 100644 --- a/tpvs17/Enchanter/main.cpp +++ b/tpvs17/Enchanter/main.cpp @@ -3,10 +3,12 @@ #include "IMainWidget.h" #include #include "QSignleApplication.h" +#include "dumpfile.h" #pragma execution_character_set("utf-8") int main(int argc, char *argv[]) { + DeclareDumpFile(); QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); IMainWidget* pMain = nullptr; QWidget* pMainWid = nullptr; diff --git a/tpvs17/caliCenter/caliCenter.vcxproj b/tpvs17/caliCenter/caliCenter.vcxproj index 60a5bca..17c5e19 100644 --- a/tpvs17/caliCenter/caliCenter.vcxproj +++ b/tpvs17/caliCenter/caliCenter.vcxproj @@ -84,6 +84,7 @@ MultiThreadedDLL true + MaxSpeed Windows diff --git a/tpvs17/caliCenter/x64/Debug/caliCenter.log b/tpvs17/caliCenter/x64/Debug/caliCenter.log deleted file mode 100644 index 94c3e6a..0000000 --- a/tpvs17/caliCenter/x64/Debug/caliCenter.log +++ /dev/null @@ -1,6 +0,0 @@ - algEg.cpp - caliCenter.cpp -f:\valueproject\newvalve\tpvs17\calicenter\calicenter.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 - 正在生成代码... -C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(1216,5): warning MSB8012: TargetPath(F:\ValueProject\newValve\tpvs17\x64\Debug\caliCenterd.dll) 与 Linker 的 OutputFile 属性值(F:\ValueProject\newValve\runner17\algorithmLib\caliCenterd.dll)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。 - caliCenter.vcxproj -> F:\ValueProject\newValve\tpvs17\x64\Debug\caliCenterd.dll diff --git a/tpvs17/lpMain/CMainWin.cpp b/tpvs17/lpMain/CMainWin.cpp index 185fa1a..4f5f32b 100644 --- a/tpvs17/lpMain/CMainWin.cpp +++ b/tpvs17/lpMain/CMainWin.cpp @@ -142,10 +142,16 @@ CMainWin::CMainWin(QWidget *parent) { ui.groupBox_2->setVisible(false); } + + m_timerA.setSingleShot(true); + m_timerB.setSingleShot(true); } CMainWin::~CMainWin() { + m_timerA.stop(); + m_timerB.stop(); + DELETE_POINTER(m_pCameraTrig); if (m_db) { @@ -358,6 +364,11 @@ Q_SLOT void CMainWin::onAppanalysis(SComFrame frame) { if (nCameraID == 1) { + if (m_timerA.isActive()) + return; + int t = lpGlobalConfig::instance()->trigerFilter; + if(t>0) + m_timerA.start(t); if (m_StationInfo_1.m_bRunEnable == true) { QString strCam = lpGlobalConfig::instance()->m_StationCamKey_1; @@ -385,6 +396,12 @@ Q_SLOT void CMainWin::onAppanalysis(SComFrame frame) } else if (nCameraID == 2) { + if (m_timerB.isActive()) + return; + int t = lpGlobalConfig::instance()->trigerFilter; + if (t > 0) + m_timerB.start(t); + if (m_StationInfo_2.m_bRunEnable == true) { QString strCam = lpGlobalConfig::instance()->m_StationCamKey_2; @@ -417,11 +434,21 @@ Q_SLOT void CMainWin::onAppanalysis(SComFrame frame) { if (nCameraID == 1) { + if (m_timerA.isActive()) + return; + int t = lpGlobalConfig::instance()->trigerFilter; + if (t > 0) + m_timerA.start(t); QString strCam = lpGlobalConfig::instance()->m_StationCamKey_1; m_pCoreCtrl->ISnapImage(QStringList() << strCam); } else if (nCameraID == 2) { + if (m_timerB.isActive()) + return; + int t = lpGlobalConfig::instance()->trigerFilter; + if (t > 0) + m_timerB.start(t); QString strCam = lpGlobalConfig::instance()->m_StationCamKey_2; m_pCoreCtrl->ISnapImage(QStringList() << strCam); } @@ -477,6 +504,7 @@ void CMainWin::onHeartComm(SComFrame &frame) if (m_pWfCtrl) { m_pWfCtrl->ISelModel(var, strModel); + lpGlobalConfig::instance()->m_StationRunModel_1 = strModel; } } m_StationInfo_1.m_bRunEnable = true; @@ -521,6 +549,7 @@ void CMainWin::onHeartComm(SComFrame &frame) .arg(QDateTime::currentDateTime().toString("hh:mm:ss zzz")); if (m_pWfCtrl) { m_pWfCtrl->ISelModel(var, strModel); + lpGlobalConfig::instance()->m_StationRunModel_2 = strModel; } } m_StationInfo_2.m_bRunEnable = true; @@ -550,6 +579,12 @@ void CMainWin::onHeartComm(SComFrame &frame) } } } + else { + nS1 = -1; + nS2 = -1; + m_StationInfo_1.m_PLCID = 0; + m_StationInfo_2.m_PLCID = 0; + } } Q_SLOT void CMainWin::onHeardBit() @@ -898,8 +933,8 @@ void CMainWin::onInitSerial() //load seriport dll if (m_pSerialPort)//如果文件存在 使用自定义的串口 { - m_pSerialPort->loadAnalysefunc(this, &CMainWin::onAppanalysis); - + m_pSerialPort->loadAnalysefunc(this, &CMainWin::onRecvComData); + connect(this, SIGNAL(sgRecvData(SComFrame)), this, SLOT(onAppanalysis(SComFrame))); //关闭框架的串口使用 QString strDefaultPort = lpSysConfig::instance()->m_ComName; int baut = lpSysConfig::instance()->m_Baut; @@ -912,6 +947,8 @@ void CMainWin::onInitSerial() } connect(&m_HeartBit, SIGNAL(timeout()), this, SLOT(onHeardBit())); m_HeartBit.start(300); + + } } } @@ -1180,7 +1217,7 @@ Q_SLOT void CMainWin::onLogInOut(QString strName, int level, int state) Q_SLOT void CMainWin::onTestMode(int val) { if (val == 0) { - m_pCameraTrig->start(1000); + m_pCameraTrig->start(5000); } else if(val ==1){ m_pCameraTrig->stop(); @@ -1406,15 +1443,29 @@ void CMainWin::IEngineResult(QVariantMap vMap) int stationID = 0; if (solutionName == lpGlobalConfig::instance()->m_StationSolution_1) { - centerX = centerPoint.x() * lpGlobalConfig::instance()->m_StationScale_1 + lpGlobalConfig::instance()->m_StationXOffset_1; - centerY = centerPoint.y() * lpGlobalConfig::instance()->m_StationScale_1 + lpGlobalConfig::instance()->m_StationYOffset_1; + if (lpGlobalConfig::instance()->m_StationXYTrans_1 == true) { + centerY = centerPoint.x() * lpGlobalConfig::instance()->m_StationScale_1 + lpGlobalConfig::instance()->m_StationXOffset_1; + centerX = centerPoint.y() * lpGlobalConfig::instance()->m_StationScale_1 + lpGlobalConfig::instance()->m_StationYOffset_1; + } + else { + centerX = centerPoint.x() * lpGlobalConfig::instance()->m_StationScale_1 + lpGlobalConfig::instance()->m_StationXOffset_1; + centerY = centerPoint.y() * lpGlobalConfig::instance()->m_StationScale_1 + lpGlobalConfig::instance()->m_StationYOffset_1; + } + sendResult(1, dAngle, centerX, centerY); stationID = 1; } else if (solutionName == lpGlobalConfig::instance()->m_StationSolution_2) { - centerX = centerPoint.x() * lpGlobalConfig::instance()->m_StationScale_2 + lpGlobalConfig::instance()->m_StationXOffset_2; - centerY = centerPoint.y() * lpGlobalConfig::instance()->m_StationScale_2 + lpGlobalConfig::instance()->m_StationYOffset_2; + if (lpGlobalConfig::instance()->m_StationXYTrans_2 == true) { + centerY = centerPoint.x() * lpGlobalConfig::instance()->m_StationScale_2 + lpGlobalConfig::instance()->m_StationXOffset_2; + centerX = centerPoint.y() * lpGlobalConfig::instance()->m_StationScale_2 + lpGlobalConfig::instance()->m_StationYOffset_2; + } + else { + centerX = centerPoint.x() * lpGlobalConfig::instance()->m_StationScale_2 + lpGlobalConfig::instance()->m_StationXOffset_2; + centerY = centerPoint.y() * lpGlobalConfig::instance()->m_StationScale_2 + lpGlobalConfig::instance()->m_StationYOffset_2; + } + sendResult(2, dAngle, centerX, centerY); stationID = 2; } @@ -1456,7 +1507,13 @@ void CMainWin::IEngineResult(QVariantMap vMap) strResult += " no found Value"; } else { - strResult += tr(" center:(%1,%2)").arg(centerX).arg(centerY); + int lowX = (centerX - (int)centerX) * 1000; + double X = (int)centerX + lowX / 1000.0; + + int lowY = (centerY - (int)centerY) * 1000; + double Y = (int)centerX + lowY / 1000.0; + + strResult += tr(" center:(%1,%2)").arg(QString::number(X, 'f', 3)).arg(QString::number(Y, 'f', 3)); } emit sgShowLog(stationID, strResult); } @@ -1581,6 +1638,11 @@ void CMainWin::saveImage(const QImage& m_pixmap, QString m_path, QString filenam workTread->start(); } +void CMainWin::onRecvComData(SComFrame frame) +{ + emit sgRecvData(frame); +} + void CMainWin::onInitDiskClean() { { diff --git a/tpvs17/lpMain/CMainWin.h b/tpvs17/lpMain/CMainWin.h index 6586a91..6afd257 100644 --- a/tpvs17/lpMain/CMainWin.h +++ b/tpvs17/lpMain/CMainWin.h @@ -82,13 +82,14 @@ protected: QString SecondTimeString(quint64 value); Q_SLOT void onLineseCheck(bool bFlag); void saveImage(const QImage& m_pixmap, QString m_path, QString filename); - + void onRecvComData(SComFrame frame); signals: void sgSelModel(int, QString); void sgSendChangeUI(QString, QString); void sgShowLog(int, QString); void sgShowImg(int, QImage); void sgShowSrcImg(QString strkey, QImage); + void sgRecvData(SComFrame frame); private://Ӣ void SearchQmFile(const QString & strDir); void SetTranslator(const QString strPath); @@ -166,6 +167,8 @@ private: QStringList m_solotions;//б + QTimer m_timerA; + QTimer m_timerB; }; #endif diff --git a/tpvs17/lpMain/QAboutUI.ui b/tpvs17/lpMain/QAboutUI.ui index 5e54e7c..405c8d4 100644 --- a/tpvs17/lpMain/QAboutUI.ui +++ b/tpvs17/lpMain/QAboutUI.ui @@ -22,7 +22,7 @@ - <html><head/><body><p>Main Version: 1.6.1020</p><p>Tadpole Version: 3.0.00</p><p>Final update date:20211020 11:00:00</p><p>Final Test data:20211020 11:00:00</p><p>单工位汽轮定位型号判别</p><p>CopyRight (C) 2016-2025 HangZhou Leaper </p><p>摩汽配件产品部</p><p><br/></p></body></html> + <html><head/><body><p>Main Version: 1.6.1026</p><p>Tadpole Version: 3.0.00</p><p>Final update date:20211026 18:00:00</p><p>Final Test data:20211026 18:00:00</p><p>单工位汽轮定位型号判别</p><p>CopyRight (C) 2016-2025 HangZhou Leaper </p><p>摩汽配件产品部</p><p><br/></p></body></html> diff --git a/tpvs17/lpMain/QDeviceMgrUI.cpp b/tpvs17/lpMain/QDeviceMgrUI.cpp index 551fd98..97146f7 100644 --- a/tpvs17/lpMain/QDeviceMgrUI.cpp +++ b/tpvs17/lpMain/QDeviceMgrUI.cpp @@ -36,6 +36,7 @@ Q_SLOT void QDeviceMgrUI::onButtonClicked() lpGlobalConfig::instance()->m_StationSolution_1 = ui.comboBox_solution1->currentText(); lpGlobalConfig::instance()->m_StationSolution_2 = ui.comboBox_solution2->currentText(); + //lpGlobalConfig::instance()->trigerFilter = ui.lineEdit->text().toInt(); lpGlobalConfig::instance()->writeConfig(); } } @@ -53,7 +54,8 @@ void QDeviceMgrUI::setParam() ui.spinBox->setValue(lpSysConfig::instance()->m_MinSpaceSizeG); ui.spinBox_2->setValue(lpSysConfig::instance()->m_CheckFileDays); ui.comboBox->setCurrentText(lpSysConfig::instance()->m_CurLanguage); - + ui.lineEdit->setText(QString("%1").arg(lpGlobalConfig::instance()->trigerFilter)); + } void QDeviceMgrUI::getParam() @@ -72,6 +74,9 @@ void QDeviceMgrUI::getParam() QString curText = ui.comboBox->currentText(); emit sgChangeLanguage(curText); + + lpGlobalConfig::instance()->trigerFilter = ui.lineEdit->text().toInt(); + lpGlobalConfig::instance()->writeConfig(); } void QDeviceMgrUI::showEvent(QShowEvent *event) diff --git a/tpvs17/lpMain/QDeviceMgrUI.ui b/tpvs17/lpMain/QDeviceMgrUI.ui index daff95f..93a65bc 100644 --- a/tpvs17/lpMain/QDeviceMgrUI.ui +++ b/tpvs17/lpMain/QDeviceMgrUI.ui @@ -7,7 +7,7 @@ 0 0 531 - 360 + 361 @@ -264,43 +264,43 @@ - - + + 12 - 波特率: + 串口名: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + 12 - - 串口名: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - + + 12 + + 波特率: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -316,6 +316,16 @@ + + + + 触发滤波: + + + + + + diff --git a/tpvs17/lpMain/lpGlobalConfig.cpp b/tpvs17/lpMain/lpGlobalConfig.cpp index b6b12b0..116c9e6 100644 --- a/tpvs17/lpMain/lpGlobalConfig.cpp +++ b/tpvs17/lpMain/lpGlobalConfig.cpp @@ -31,6 +31,8 @@ void lpGlobalConfig::readConfig() QString strSolution2 = rootObj.value("station_solution_2").toString(); QString strRunModel1 = rootObj.value("station_runModel_1").toString(); QString strRunModel2 = rootObj.value("station_runModel_2").toString(); + m_StationXYTrans_1 = rootObj.value("station_xytrans_1").toBool(); + m_StationXYTrans_2 = rootObj.value("station_xytrans_2").toBool(); m_StationCamKey_1 = strCam1; m_StationCamKey_2 = strCam2; m_StationSolution_1 = strSolution1; @@ -69,6 +71,7 @@ void lpGlobalConfig::readConfig() m_StationYOffset_2 = rootObj.value("StationYOffset_2").toDouble(0.0); pointCircle = rootObj.value("pointCircle").toInt(20); + trigerFilter = rootObj.value("trigerFilter").toInt(1000); } } file.close(); @@ -88,6 +91,9 @@ void lpGlobalConfig::writeConfig() rootObj.insert("station_runModel_1", m_StationRunModel_1); rootObj.insert("station_runModel_2", m_StationRunModel_2); + rootObj.insert("station_xytrans_1", m_StationXYTrans_1); + rootObj.insert("station_xytrans_2", m_StationXYTrans_2); + rootObj.insert("onlineMode", m_bOnlineMode); rootObj.insert("point1_x_1", point1_1.x()); @@ -110,6 +116,7 @@ void lpGlobalConfig::writeConfig() rootObj.insert("StationXOffset_2",m_StationXOffset_2); rootObj.insert("StationYOffset_2",m_StationYOffset_2); rootObj.insert("pointCircle", pointCircle); + rootObj.insert("trigerFilter", trigerFilter); QJsonDocument doc(rootObj); QByteArray writeData = doc.toJson(); diff --git a/tpvs17/lpMain/lpGlobalConfig.h b/tpvs17/lpMain/lpGlobalConfig.h index 2eebdc6..c448749 100644 --- a/tpvs17/lpMain/lpGlobalConfig.h +++ b/tpvs17/lpMain/lpGlobalConfig.h @@ -33,7 +33,8 @@ public: double m_StationScale_1{ 1.0 };// / double m_StationXOffset_1{ 0.0 };//ƫ double m_StationYOffset_1{ 0.0 };//ƫ - + bool m_StationXYTrans_1{ false };//ȡ + //궨 λB QPoint point1_2;//궨 1 QPoint point2_2;//궨 2 @@ -41,11 +42,14 @@ public: double m_StationScale_2{ 1.0 }; double m_StationXOffset_2{ 0.0 }; double m_StationYOffset_2{ 0.0 }; - + bool m_StationXYTrans_2{ false };//ȡ + int pointCircle{ 20 };//궨 ֱ bool m_bOnlineMode{ false };//ģʽ QString m_rootPath; + + int trigerFilter{ 1000 };//˲ʱ }; #endif diff --git a/tpvs17/lpMain/lpMain.vcxproj.filters b/tpvs17/lpMain/lpMain.vcxproj.filters index 5c14b59..f968e03 100644 --- a/tpvs17/lpMain/lpMain.vcxproj.filters +++ b/tpvs17/lpMain/lpMain.vcxproj.filters @@ -14,11 +14,6 @@ qrc;* false - - {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} - qrc;* - false - {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} moc;h;cpp @@ -58,6 +53,11 @@ {d14394a4-d4ae-4d47-b726-613b27aa46e7} + + {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} + qrc;* + false + @@ -414,45 +414,45 @@ - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files - Resource Files + Header Files\Resource Files diff --git a/tpvs17/newValue_tp17.sln b/tpvs17/newValue_tp17.sln index 6bd6d42..3a6ab7b 100644 --- a/tpvs17/newValue_tp17.sln +++ b/tpvs17/newValue_tp17.sln @@ -13,6 +13,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lpMain", "lpMain\lpMain.vcx EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Report", "Report\Report.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tpCamVirtual", "tpCamVirtual\tpCamVirtual.vcxproj", "{707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lpdesigner", "lpdesigner\lpdesigner.vcxproj", "{616EB73F-66E3-46FF-B423-1A5B7E6AAB8B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lpbengine", "lpbengine\lpbengine.vcxproj", "{DC221ADF-9D25-40E0-90AD-CC2C497F6FB9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Enchanter", "Enchanter\Enchanter.vcxproj", "{7B76D75A-0E01-451E-880E-FB9AC63A914B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lpCoreCtrl", "lpCoreCtrl\lpCoreCtrl.vcxproj", "{784071A9-BF94-4D27-B62E-588ACD7E0633}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -53,6 +63,40 @@ Global {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64 {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64 {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x86.ActiveCfg = Release|x64 + {707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Debug|x64.ActiveCfg = Debug|x64 + {707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Debug|x64.Build.0 = Debug|x64 + {707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Debug|x86.ActiveCfg = Debug|Win32 + {707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Debug|x86.Build.0 = Debug|Win32 + {707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Release|x64.ActiveCfg = Release|x64 + {707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Release|x64.Build.0 = Release|x64 + {707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Release|x86.ActiveCfg = Release|Win32 + {707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Release|x86.Build.0 = Release|Win32 + {616EB73F-66E3-46FF-B423-1A5B7E6AAB8B}.Debug|x64.ActiveCfg = Debug|x64 + {616EB73F-66E3-46FF-B423-1A5B7E6AAB8B}.Debug|x64.Build.0 = Debug|x64 + {616EB73F-66E3-46FF-B423-1A5B7E6AAB8B}.Debug|x86.ActiveCfg = Debug|x64 + {616EB73F-66E3-46FF-B423-1A5B7E6AAB8B}.Release|x64.ActiveCfg = Release|x64 + {616EB73F-66E3-46FF-B423-1A5B7E6AAB8B}.Release|x64.Build.0 = Release|x64 + {616EB73F-66E3-46FF-B423-1A5B7E6AAB8B}.Release|x86.ActiveCfg = Release|x64 + {DC221ADF-9D25-40E0-90AD-CC2C497F6FB9}.Debug|x64.ActiveCfg = Debug|x64 + {DC221ADF-9D25-40E0-90AD-CC2C497F6FB9}.Debug|x64.Build.0 = Debug|x64 + {DC221ADF-9D25-40E0-90AD-CC2C497F6FB9}.Debug|x86.ActiveCfg = Debug|Win32 + {DC221ADF-9D25-40E0-90AD-CC2C497F6FB9}.Debug|x86.Build.0 = Debug|Win32 + {DC221ADF-9D25-40E0-90AD-CC2C497F6FB9}.Release|x64.ActiveCfg = Release|x64 + {DC221ADF-9D25-40E0-90AD-CC2C497F6FB9}.Release|x64.Build.0 = Release|x64 + {DC221ADF-9D25-40E0-90AD-CC2C497F6FB9}.Release|x86.ActiveCfg = Release|Win32 + {DC221ADF-9D25-40E0-90AD-CC2C497F6FB9}.Release|x86.Build.0 = Release|Win32 + {7B76D75A-0E01-451E-880E-FB9AC63A914B}.Debug|x64.ActiveCfg = Debug|x64 + {7B76D75A-0E01-451E-880E-FB9AC63A914B}.Debug|x64.Build.0 = Debug|x64 + {7B76D75A-0E01-451E-880E-FB9AC63A914B}.Debug|x86.ActiveCfg = Debug|x64 + {7B76D75A-0E01-451E-880E-FB9AC63A914B}.Release|x64.ActiveCfg = Release|x64 + {7B76D75A-0E01-451E-880E-FB9AC63A914B}.Release|x64.Build.0 = Release|x64 + {7B76D75A-0E01-451E-880E-FB9AC63A914B}.Release|x86.ActiveCfg = Release|x64 + {784071A9-BF94-4D27-B62E-588ACD7E0633}.Debug|x64.ActiveCfg = Debug|x64 + {784071A9-BF94-4D27-B62E-588ACD7E0633}.Debug|x64.Build.0 = Debug|x64 + {784071A9-BF94-4D27-B62E-588ACD7E0633}.Debug|x86.ActiveCfg = Debug|x64 + {784071A9-BF94-4D27-B62E-588ACD7E0633}.Release|x64.ActiveCfg = Release|x64 + {784071A9-BF94-4D27-B62E-588ACD7E0633}.Release|x64.Build.0 = Release|x64 + {784071A9-BF94-4D27-B62E-588ACD7E0633}.Release|x86.ActiveCfg = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE