1、增加型号名修改,同步修改模板识别型号名和气门芯定位型号名

2、气门芯定位标定页面调整,修改参数增加自动刷新功能
3、气门芯定位检测算法增加圆心偏移参数阈值设置功能,开放到调参页面
4、增加ROI圆心坐标设置功能
master
bob.pan 4 years ago
parent 7e5d572e21
commit b450f4e040

@ -2,6 +2,7 @@
#include "ui_RoiDlg.h" #include "ui_RoiDlg.h"
#include "colossusbase.h" #include "colossusbase.h"
#include "QPalette" #include "QPalette"
#include "QSetCenterDlg.h"
#define WINDOWS_ICON ":/resource/app.png" #define WINDOWS_ICON ":/resource/app.png"
@ -45,6 +46,7 @@ CDsgRoiDlg::CDsgRoiDlg(QWidget *parent) : QDialog(parent), ui(new Ui::RoiDlg)
connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(OnCancel())); connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(OnCancel()));
connect(ui->pushButton_7, SIGNAL(clicked()), this, SLOT(OnCircle())); connect(ui->pushButton_7, SIGNAL(clicked()), this, SLOT(OnCircle()));
connect(ui->pushButton_8, SIGNAL(clicked()), this, SLOT(OnShowColorDlg())); connect(ui->pushButton_8, SIGNAL(clicked()), this, SLOT(OnShowColorDlg()));
ui->pushButton_8->setAutoDefault(false); ui->pushButton_8->setAutoDefault(false);
connect(ui->pushButton_5, SIGNAL(clicked()), this, SLOT(OnShowTenFlag())); connect(ui->pushButton_5, SIGNAL(clicked()), this, SLOT(OnShowTenFlag()));
@ -52,6 +54,7 @@ CDsgRoiDlg::CDsgRoiDlg(QWidget *parent) : QDialog(parent), ui(new Ui::RoiDlg)
m_pRoiScene = new RoiScene(this); m_pRoiScene = new RoiScene(this);
m_pRoiScene->SetGraphicsView(ui->graphicsView); m_pRoiScene->SetGraphicsView(ui->graphicsView);
m_pRoiScene->SetInfoLable(ui->label_pixel_info); m_pRoiScene->SetInfoLable(ui->label_pixel_info);
connect(m_pRoiScene, SIGNAL(sgResetItem(QPoint, QRect)), this, SLOT(onROIMove(QPoint, QRect)));
connect(ui->m_pbUp, SIGNAL(clicked()), this, SLOT(OnMove())); connect(ui->m_pbUp, SIGNAL(clicked()), this, SLOT(OnMove()));
connect(ui->m_pbLeft, SIGNAL(clicked()), this, SLOT(OnMove())); connect(ui->m_pbLeft, SIGNAL(clicked()), this, SLOT(OnMove()));
@ -467,6 +470,7 @@ void CDsgRoiDlg::showEvent(QShowEvent *evt)
return; return;
m_pRoiScene->Initialize(m_tempRoiData); m_pRoiScene->Initialize(m_tempRoiData);
m_pRoiScene->DisableMenu(false); m_pRoiScene->DisableMenu(false);
ui->label_2->clear();
} }
void CDsgRoiDlg::OnZoomIn() void CDsgRoiDlg::OnZoomIn()
@ -495,3 +499,9 @@ void CDsgRoiDlg::changeEvent(QEvent *event)
ui->retranslateUi(this); ui->retranslateUi(this);
} }
} }
Q_SLOT void CDsgRoiDlg::onROIMove(QPoint pos, QRect rect)
{
ui->label_2->setText(QString("center:[%1,%2]").arg(pos.x()).arg(pos.y()));
}

@ -25,9 +25,11 @@ public:
virtual void OnSetParam(IDetectorTask* pTask){} virtual void OnSetParam(IDetectorTask* pTask){}
virtual void showEvent(QShowEvent *evt); virtual void showEvent(QShowEvent *evt);
Q_SLOT void onSliderChange(int value); Q_SLOT void onSliderChange(int value);
Q_SLOT void onROIMove(QPoint pos, QRect rect);
protected: protected:
virtual void changeEvent(QEvent *event); virtual void changeEvent(QEvent *event);
public slots :
public slots:
bool OnOk(); bool OnOk();
bool OnCancel(); bool OnCancel();
void OnRectangle(); void OnRectangle();

@ -744,6 +744,12 @@ bool CMainFrame::OnSetAlgo()
m_tParamMgrDlg.setWindowModality(Qt::ApplicationModal); m_tParamMgrDlg.setWindowModality(Qt::ApplicationModal);
m_tParamMgrDlg.setAttribute(Qt::WA_ShowModal, true); m_tParamMgrDlg.setAttribute(Qt::WA_ShowModal, true);
m_tParamMgrDlg.ShowParamMgrDlg(pAlgo); m_tParamMgrDlg.ShowParamMgrDlg(pAlgo);
QString strName = m_pCurrentTask->GetTaskInfo()->strName;
if (!m_TaskChangeList.contains(strName))
{
m_TaskChangeList.append(strName);
}
} }
} }
return true; return true;
@ -774,6 +780,12 @@ bool CMainFrame::OnSetOutParam()
m_tParamMgrDlg.setWindowModality(Qt::ApplicationModal); m_tParamMgrDlg.setWindowModality(Qt::ApplicationModal);
m_tParamMgrDlg.setAttribute(Qt::WA_ShowModal, true); m_tParamMgrDlg.setAttribute(Qt::WA_ShowModal, true);
m_tParamMgrDlg.ShowParamMgrDlg(pAlgo); m_tParamMgrDlg.ShowParamMgrDlg(pAlgo);
QString strName = m_pCurrentTask->GetTaskInfo()->strName;
if (!m_TaskChangeList.contains(strName))
{
m_TaskChangeList.append(strName);
}
} }
} }
return true; return true;
@ -1186,7 +1198,7 @@ bool CMainFrame::OnEditParam()
AlgoParamType type; AlgoParamType type;
PLP_ALGORITHM_PARAM pParam = NULL; PLP_ALGORITHM_PARAM pParam = NULL;
pParam = m_pCurrentAlgo->GetParamByName(strParaName); pParam = m_pCurrentAlgo->GetParamByName(strParaName);
if (pParam) if (pParam)//编辑算法参数
{ {
if (!m_tParamDlg.InitGraphView()) if (!m_tParamDlg.InitGraphView())
return false; return false;
@ -1196,13 +1208,15 @@ bool CMainFrame::OnEditParam()
m_tParamDlg.setWindowModality(Qt::ApplicationModal); m_tParamDlg.setWindowModality(Qt::ApplicationModal);
m_tParamDlg.setAttribute(Qt::WA_ShowModal, true); m_tParamDlg.setAttribute(Qt::WA_ShowModal, true);
m_tParamDlg.ShowParamDlg(pParam); m_tParamDlg.ShowParamDlg(pParam);
if (_pOldTask) if (_pOldTask)//编辑完成 输出信息
{ {
QString st = _pOldTask->GetTaskInfo()->strName; QString st = _pOldTask->GetTaskInfo()->strName;
if (!m_TaskChangeList.contains(st)) if (!m_TaskChangeList.contains(st))
{ {
m_TaskChangeList.append(st); m_TaskChangeList.append(st);
} }
//自动刷新算法参数栏
OnInitCurrentAlgoParam();
} }
return true; return true;
} }

@ -230,27 +230,17 @@
<property name="spacing"> <property name="spacing">
<number>0</number> <number>0</number>
</property> </property>
<item row="3" column="1"> <item row="1" column="1">
<spacer name="verticalSpacer_2"> <widget class="QToolButton" name="toolButton">
<property name="orientation"> <property name="enabled">
<enum>Qt::Vertical</enum> <bool>false</bool>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property> </property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QToolButton" name="m_pbUp">
<property name="text"> <property name="text">
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="image.qrc"> <iconset resource="image.qrc">
<normaloff>:/resource/caret-up.png</normaloff>:/resource/caret-up.png</iconset> <normaloff>:/resource/btn-close.png</normaloff>:/resource/btn-close.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -258,11 +248,39 @@
<height>32</height> <height>32</height>
</size> </size>
</property> </property>
<property name="checkable">
<bool>false</bool>
</property>
<property name="autoRepeat">
<bool>false</bool>
</property>
<property name="autoExclusive">
<bool>false</bool>
</property>
<property name="popupMode">
<enum>QToolButton::DelayedPopup</enum>
</property>
<property name="autoRaise"> <property name="autoRaise">
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="arrowType">
<enum>Qt::NoArrow</enum>
</property>
</widget> </widget>
</item> </item>
<item row="3" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1"> <item row="2" column="1">
<widget class="QToolButton" name="m_pbDown"> <widget class="QToolButton" name="m_pbDown">
<property name="text"> <property name="text">
@ -323,17 +341,14 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="0" column="1">
<widget class="QToolButton" name="toolButton"> <widget class="QToolButton" name="m_pbUp">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text"> <property name="text">
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="image.qrc"> <iconset resource="image.qrc">
<normaloff>:/resource/btn-close.png</normaloff>:/resource/btn-close.png</iconset> <normaloff>:/resource/caret-up.png</normaloff>:/resource/caret-up.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -341,24 +356,9 @@
<height>32</height> <height>32</height>
</size> </size>
</property> </property>
<property name="checkable">
<bool>false</bool>
</property>
<property name="autoRepeat">
<bool>false</bool>
</property>
<property name="autoExclusive">
<bool>false</bool>
</property>
<property name="popupMode">
<enum>QToolButton::DelayedPopup</enum>
</property>
<property name="autoRaise"> <property name="autoRaise">
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="arrowType">
<enum>Qt::NoArrow</enum>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -368,6 +368,18 @@
</item> </item>
<item row="1" column="0" colspan="2"> <item row="1" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item> <item>
<spacer name="horizontalSpacer_5"> <spacer name="horizontalSpacer_5">
<property name="orientation"> <property name="orientation">

@ -4,6 +4,7 @@
#include "RoiItem.h" #include "RoiItem.h"
#include "QGraphicsSceneEvent" #include "QGraphicsSceneEvent"
#include "colossusbase.h" #include "colossusbase.h"
#include "QSetCenterDlg.h"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
RoiScene::RoiScene(QObject *parent) RoiScene::RoiScene(QObject *parent)
@ -55,6 +56,7 @@ void RoiScene::mouseEvent(QGraphicsSceneMouseEvent *mouseEvent)
bool RoiScene::Initialize(LP_DETECTOR_ROI_DATA roiData) bool RoiScene::Initialize(LP_DETECTOR_ROI_DATA roiData)
{ {
if (pLineItem) if (pLineItem)
{ {
removeItem(pLineItem); removeItem(pLineItem);
@ -300,6 +302,7 @@ void RoiScene::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
if (tool) if (tool)
tool->mouseMoveEvent(mouseEvent, this); tool->mouseMoveEvent(mouseEvent, this);
QGraphicsScene::mouseMoveEvent(mouseEvent); QGraphicsScene::mouseMoveEvent(mouseEvent);
emit sgResetItem(maptoImgPos(item->scenePos()), item->boundingRect().toRect());
} }
else else
{ {
@ -327,7 +330,7 @@ void RoiScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
if (item != 0) if (item != 0)
{ {
//m_pRoiDlg->ResetItem(maptoImgPos(mouseEvent->scenePos()), item->boundingRect().toRect()); //m_pRoiDlg->ResetItem(maptoImgPos(mouseEvent->scenePos()), item->boundingRect().toRect());
emit sgResetItem(maptoImgPos(mouseEvent->scenePos()), item->boundingRect().toRect()); emit sgResetItem(maptoImgPos(item->scenePos()), item->boundingRect().toRect());
m_graphItemMapStruct[item].rectf = maptoImgNewPos(item); m_graphItemMapStruct[item].rectf = maptoImgNewPos(item);
DrawTool::c_drawShape = selection; DrawTool::c_drawShape = selection;
QGraphicsScene::mouseReleaseEvent(mouseEvent); QGraphicsScene::mouseReleaseEvent(mouseEvent);
@ -343,8 +346,10 @@ void RoiScene::MoveSelectedItem(DirType type, int step)
if (items.count() == 1) if (items.count() == 1)
item = qgraphicsitem_cast<GraphicsItem*>(items.first()); item = qgraphicsitem_cast<GraphicsItem*>(items.first());
if (item != 0 && !item->GetCheckState()) if (item != 0 && !item->GetCheckState())
{ {
//item->setPos(0, 0);
switch (type) switch (type)
{ {
case LEFT: case LEFT:
@ -534,7 +539,9 @@ void RoiScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
} }
} }
} }
menu.addSeparator();
QAction *setCenter = menu.addAction(QObject::tr("设置圆心"));
setCenter->setObjectName("setCenter");
QAction *selectedAction = menu.exec(event->screenPos()); QAction *selectedAction = menu.exec(event->screenPos());
if (selectedAction == NULL) if (selectedAction == NULL)
{ {
@ -717,6 +724,30 @@ void RoiScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
} }
updateLineItem(); updateLineItem();
} }
else if (strObj == "setCenter")
{
if (ptmpItem)
{
QPointF s = maptoImgPos(ptmpItem->scenePos());
QSetCenterDlg dlg((QWidget*)(this->parent()));
dlg.setCenter(s.x(),s.y());
dlg.setRange(ptmpItem->boundingRect().toRect(), mImgPosOffSet * 2);
if (dlg.exec() == QDialog::Accepted)
{
double x = 0;
double y = 0;
dlg.getCenter(x, y);
QPointF itemPoint;
itemPoint.setX(x);
itemPoint.setY(y);
QPointF tt = itemPoint - mImgPosOffSet;
QPointF fff = maptoImgPos(tt);
ptmpItem->setPos(tt);
}
m_graphItemMapStruct[ptmpItem].rectf = maptoImgNewPos(ptmpItem);
}
}
QGraphicsScene::contextMenuEvent(event); QGraphicsScene::contextMenuEvent(event);
menu.clear(); menu.clear();
update(); update();

@ -67,7 +67,6 @@ public:
void updateTenItem(bool bFlag); void updateTenItem(bool bFlag);
int flag{ 0 }; int flag{ 0 };
bool bUseTenFlag{ false }; bool bUseTenFlag{ false };
signals: signals:
void sgResetItem(QPoint pos, QRect size); void sgResetItem(QPoint pos, QRect size);
protected: protected:

@ -141,6 +141,19 @@ bool Solution::DeleteTask(QString strName)
return false; return false;
} }
bool Solution::ModifyTask(QString strOldName, QString strNewName)
{
QMap<QString, IDetectorTask*>::iterator its = m_TaskMapByName.find(strOldName);
if (its != m_TaskMapByName.end())
{
(*its)->RenameFile(strOldName, strNewName);
IDetectorTask* pTask = m_TaskMapByName.take(strOldName);
m_TaskMapByName.insert(strNewName, pTask);
return true;
}
return false;
}
IDetectorTask* Solution::GetTaskByName(QString strName) IDetectorTask* Solution::GetTaskByName(QString strName)
{ {
QMap<QString, IDetectorTask*>::iterator its = m_TaskMapByName.find(strName); QMap<QString, IDetectorTask*>::iterator its = m_TaskMapByName.find(strName);
@ -383,6 +396,9 @@ bool Solution::LoadFileEx(const QString& strPath)
m_tasklist.append(taskName); m_tasklist.append(taskName);
QString strTaskPath = strPath + "/" + taskName; QString strTaskPath = strPath + "/" + taskName;
QDir qDir(strTaskPath);
if (!qDir.exists())
continue;
LP_DETECTOR_TASK Task; LP_DETECTOR_TASK Task;
Task.strName = taskName; Task.strName = taskName;
CDetectorTask* pTask = (CDetectorTask*)AddTask(&Task, strTaskPath);//有隐藏bug CDetectorTask* pTask = (CDetectorTask*)AddTask(&Task, strTaskPath);//有隐藏bug

@ -11,6 +11,7 @@ public:
virtual bool AddTaskByTemplate(QString strName); virtual bool AddTaskByTemplate(QString strName);
virtual IDetectorTask* AddTask(const PLP_DETECTOR_TASK pTask); virtual IDetectorTask* AddTask(const PLP_DETECTOR_TASK pTask);
virtual bool DeleteTask(QString strName); virtual bool DeleteTask(QString strName);
virtual bool ModifyTask(QString strOldName, QString strNewName);
virtual IDetectorTask* GetTaskByName(QString strName); virtual IDetectorTask* GetTaskByName(QString strName);
virtual QStringList GetAllTaskNames(); virtual QStringList GetAllTaskNames();
virtual QMap<QString, IDetectorTask*> GetAllTasks(); virtual QMap<QString, IDetectorTask*> GetAllTasks();

@ -140,6 +140,7 @@ bool CDetectorSolutionMgr::SaveByNames(QStringList strNames)
//加载配置文件 //加载配置文件
bool CDetectorSolutionMgr::Load() bool CDetectorSolutionMgr::Load()
{ {
/*在应用程序的根目录下寻找solution文件夹没有即创建*/
QString strExePath = QCoreApplication::applicationDirPath(); QString strExePath = QCoreApplication::applicationDirPath();
QString strSolutionDirPath = strExePath + LP_DETECTOR_BUSSINESS_CONFIG_SOLUTION_DIR; QString strSolutionDirPath = strExePath + LP_DETECTOR_BUSSINESS_CONFIG_SOLUTION_DIR;
QDir solutionDir(strSolutionDirPath); QDir solutionDir(strSolutionDirPath);
@ -149,7 +150,7 @@ bool CDetectorSolutionMgr::Load()
} }
m_nRunSolutionID.clear(); m_nRunSolutionID.clear();
/*遍历solution文件夹下的所有文件夹每一个文件夹即是一个子solution*/
solutionDir.setFilter(QDir::Dirs | QDir::Hidden | QDir::NoSymLinks); solutionDir.setFilter(QDir::Dirs | QDir::Hidden | QDir::NoSymLinks);
solutionDir.setSorting(QDir::Size | QDir::Reversed); solutionDir.setSorting(QDir::Size | QDir::Reversed);
QFileInfoList dirList = solutionDir.entryInfoList(); QFileInfoList dirList = solutionDir.entryInfoList();
@ -160,7 +161,8 @@ bool CDetectorSolutionMgr::Load()
if (dirList.at(i).fileName() == "." || dirList.at(i).fileName() == "..") if (dirList.at(i).fileName() == "." || dirList.at(i).fileName() == "..")
continue; continue;
//加载解决方案文件夹 //加载解决方案文件夹 判断子solution文件里使用包含info.json文件有该文件表示solution有效solution名和文件夹名一致
/*如果需要修改solution的名字需要手动在后台修改solution的文件夹名字即可*/
QString strSolutionFile = strSolutionDirPath + dirList.at(i).fileName(); QString strSolutionFile = strSolutionDirPath + dirList.at(i).fileName();
QString path = strSolutionFile + "/info.json"; QString path = strSolutionFile + "/info.json";
QFileInfo finfo(path); QFileInfo finfo(path);
@ -168,8 +170,8 @@ bool CDetectorSolutionMgr::Load()
continue; continue;
LP_DETECTOR_SOLUTION solutionInfo; LP_DETECTOR_SOLUTION solutionInfo;
solutionInfo.strName = dirList.at(i).fileName(); solutionInfo.strName = dirList.at(i).fileName();//设置solution名
/*开始加载solution*/
Solution* pSolution = (Solution*)AddSolution(&solutionInfo); Solution* pSolution = (Solution*)AddSolution(&solutionInfo);
if (!pSolution->LoadFileEx(strSolutionFile)) if (!pSolution->LoadFileEx(strSolutionFile))
{//有bug {//有bug
@ -184,7 +186,7 @@ bool CDetectorSolutionMgr::Load()
return true; return true;
} }
/*暂时弃用*/
bool CDetectorSolutionMgr::LoadByNames(QStringList strNames) bool CDetectorSolutionMgr::LoadByNames(QStringList strNames)
{ {
return true; return true;

@ -24,6 +24,7 @@ static inline bool DelDiretory(const QString &dirPath)
return qDir.rmdir(dirPath); return qDir.rmdir(dirPath);
} }
CDetectorTask::CDetectorTask() CDetectorTask::CDetectorTask()
{ {
m_nID = LP_DETECTOR_INVALID_ID; m_nID = LP_DETECTOR_INVALID_ID;
@ -488,6 +489,23 @@ bool CDetectorTask::RemoveFile()
DelDiretory(m_taskPath); DelDiretory(m_taskPath);
return true; return true;
} }
/*对task重命名*/
bool CDetectorTask::RenameFile(QString strOldName, QString strNewName)
{
if (m_taskPath.isEmpty())
return false;
QDir qDir(m_taskPath);
if (!qDir.exists())
return false;
QString strOld = m_taskPath;
int pos = strOld.lastIndexOf(strOldName);
QString s = strOld.mid(0, pos);
m_taskPath = s + strNewName;
bool b = qDir.rename(strOld, m_taskPath);
strParamFilePath = m_taskPath + "/taskinfo.json";
m_tTask.strName = strNewName;
return true;
}
bool CDetectorTask::AppendOtherFile(QString strpath) bool CDetectorTask::AppendOtherFile(QString strpath)
{ {

@ -57,6 +57,7 @@ public:
virtual bool SaveFile(const QString& strPath); virtual bool SaveFile(const QString& strPath);
virtual bool LoadFile(const QString& strPath); virtual bool LoadFile(const QString& strPath);
virtual bool RemoveFile(); virtual bool RemoveFile();
virtual bool RenameFile(QString strOldName, QString strNewName);
virtual bool AppendOtherFile(QString strpath); virtual bool AppendOtherFile(QString strpath);
bool SerializeToJson(QJsonObject& jsonObject); bool SerializeToJson(QJsonObject& jsonObject);

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -40,6 +40,7 @@
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\src\lpCoreCtrl\callbackFunc.h" /> <ClInclude Include="..\..\src\lpCoreCtrl\callbackFunc.h" />
<ClInclude Include="..\..\src\lpCoreCtrl\CoreCtrl.h" /> <ClInclude Include="..\..\src\lpCoreCtrl\CoreCtrl.h" />
<ClInclude Include="resource.h" />
<CustomBuild Include="QFunctionTransfer.h"> <CustomBuild Include="QFunctionTransfer.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>
@ -77,6 +78,9 @@
<None Include="GeneratedFiles\Debug\CoreCtrl.moc" /> <None Include="GeneratedFiles\Debug\CoreCtrl.moc" />
<None Include="GeneratedFiles\Release\CoreCtrl.moc" /> <None Include="GeneratedFiles\Release\CoreCtrl.moc" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ResourceCompile Include="lpCoreCtrl.rc" />
</ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{784071A9-BF94-4D27-B62E-588ACD7E0633}</ProjectGuid> <ProjectGuid>{784071A9-BF94-4D27-B62E-588ACD7E0633}</ProjectGuid>
<Keyword>Qt4VSv1.0</Keyword> <Keyword>Qt4VSv1.0</Keyword>

@ -130,6 +130,9 @@
<ClInclude Include="..\..\src\lpCoreCtrl\threadsafe_list.hpp"> <ClInclude Include="..\..\src\lpCoreCtrl\threadsafe_list.hpp">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<CustomBuild Include="..\..\src\lpCoreCtrl\CThread.h"> <CustomBuild Include="..\..\src\lpCoreCtrl\CThread.h">
@ -147,4 +150,7 @@
<Filter>Generated Files</Filter> <Filter>Generated Files</Filter>
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup>
<ResourceCompile Include="lpCoreCtrl.rc" />
</ItemGroup>
</Project> </Project>

@ -0,0 +1,14 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by lpCoreCtrl.rc
// 新对象的下一组默认值
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

Binary file not shown.

Binary file not shown.

@ -419,6 +419,12 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DLPBENGINE_LIB -D%(PreprocessorDefinitions) "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I.\..\..\include" "-I.\..\..\..\Colossus\include\base" "-I.\..\..\..\Colossus\include\lpbengine" "-I.\..\..\3part\opencv3.4.1\include" "-I.\..\..\3part\opencv3.4.1\include\opencv" "-I.\..\..\3part\opencv3.4.1\include\opencv2" "-I.\..\..\3part\tadpole\include\tpBase" "-ID:\Valve\3part\tadpole\include\tpBase"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DLPBENGINE_LIB -D%(PreprocessorDefinitions) "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I.\..\..\include" "-I.\..\..\..\Colossus\include\base" "-I.\..\..\..\Colossus\include\lpbengine" "-I.\..\..\3part\opencv3.4.1\include" "-I.\..\..\3part\opencv3.4.1\include\opencv" "-I.\..\..\3part\opencv3.4.1\include\opencv2" "-I.\..\..\3part\tadpole\include\tpBase" "-ID:\Valve\3part\tadpole\include\tpBase"</Command>
</CustomBuild> </CustomBuild>
</ItemGroup> </ItemGroup>
<ItemGroup>
<ClInclude Include="resource1.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="lpbengine.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>

@ -88,4 +88,12 @@
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</CustomBuild> </CustomBuild>
</ItemGroup> </ItemGroup>
<ItemGroup>
<ClInclude Include="resource1.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="lpbengine.rc" />
</ItemGroup>
</Project> </Project>

@ -0,0 +1,14 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by lpbengine.rc
// 新对象的下一组默认值
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

@ -0,0 +1,55 @@
#include "QSetCenterDlg.h"
#include "QMessageBox"
#pragma execution_character_set("utf-8")
QSetCenterDlg::QSetCenterDlg(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
}
QSetCenterDlg::~QSetCenterDlg()
{
}
void QSetCenterDlg::setCenter(double x, double y)
{
ui.lineEdit->setText(QString("%1").arg(x));
ui.lineEdit_2->setText(QString("%1").arg(y));
}
void QSetCenterDlg::getCenter(double &x, double &y)
{
x = ui.lineEdit->text().toDouble();
y = ui.lineEdit_2->text().toDouble();
}
void QSetCenterDlg::setRange(QRect rect, QPointF imgSize)
{
m_ItemRect = rect;
m_ImgSize = imgSize;
}
Q_SLOT void QSetCenterDlg::onButtonClicked()
{
QString strObj = sender()->objectName();
if (strObj == "pushButton")
{
double x = ui.lineEdit->text().toDouble();
double y = ui.lineEdit_2->text().toDouble();
if ((x + m_ItemRect.width() / 2) > m_ImgSize.x() || (x - m_ItemRect.width() / 2) < 0 || (y - m_ItemRect.height() / 2) < 0 || (y + m_ItemRect.height() / 2) > m_ImgSize.y())
{
QMessageBox::warning(this, QObject::tr("警告"), QObject::tr("设置的圆心坐标导致整个ROI超出检测范围不合法请重新设置"));
return;
}
QDialog::accept();
}
else if (strObj == "pushButton_2")
{
QDialog::reject();
}
}

@ -0,0 +1,24 @@
#ifndef _QSETCENTERDLG_H_
#define _QSETCENTERDLG_H_
#include <QDialog>
#include "ui_QSetCenterDlg.h"
class QSetCenterDlg : public QDialog
{
Q_OBJECT
public:
QSetCenterDlg(QWidget *parent = Q_NULLPTR);
~QSetCenterDlg();
void setCenter(double x, double y);
void getCenter(double &x, double &y);
void setRange(QRect rect, QPointF imgSize);
Q_SLOT void onButtonClicked();
private:
Ui::QSetCenterDlg ui;
QRect m_ItemRect;
QPointF m_ImgSize;
};
#endif

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QSetCenterDlg</class>
<widget class="QDialog" name="QSetCenterDlg">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>209</width>
<height>100</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="windowTitle">
<string>圆心坐标设置</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="sizeConstraint">
<enum>QLayout::SetFixedSize</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>圆心X坐标</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>圆心Y坐标</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit_2">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

Binary file not shown.

@ -78,6 +78,7 @@
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="resource2.h" />
<CustomBuild Include="..\..\src\lpbdesigner\DsgParamDlg.h"> <CustomBuild Include="..\..\src\lpbdesigner\DsgParamDlg.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>
@ -93,6 +94,7 @@
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_AlgorithmParamMgrDlg.h" /> <ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_AlgorithmParamMgrDlg.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_MainFrame.h" /> <ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_MainFrame.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_ParamDlg.h" /> <ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_ParamDlg.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_QSetCenterDlg.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_RoiDlg.h" /> <ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_RoiDlg.h" />
<CustomBuild Include="lpdesignerConfig.h"> <CustomBuild Include="lpdesignerConfig.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
@ -104,6 +106,16 @@
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DLPDESIGNER_LIB -D%(PreprocessorDefinitions) "-I." "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWebKit" "-I$(QTDIR)\include\QtPrintSupport" "-I$(QTDIR)\include\QtWebkitWidgets" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\..\..\include\lpdesigner\algela" "-I.\..\..\include\lpdesigner" "-I.\..\..\src\lpbdesigner\GeneratedFiles" "-I.\..\..\src\ColossusBase" "-I.\..\..\3part\opencv3.4.1\include" "-I.\..\..\3part\opencv3.4.1\include\opencv" "-I.\..\..\3part\opencv3.4.1\include\opencv2" "-I.\..\..\src\lpbdesigner" "-I.\..\..\3part\tadpole\include\tpBase"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DLPDESIGNER_LIB -D%(PreprocessorDefinitions) "-I." "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWebKit" "-I$(QTDIR)\include\QtPrintSupport" "-I$(QTDIR)\include\QtWebkitWidgets" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\..\..\include\lpdesigner\algela" "-I.\..\..\include\lpdesigner" "-I.\..\..\src\lpbdesigner\GeneratedFiles" "-I.\..\..\src\ColossusBase" "-I.\..\..\3part\opencv3.4.1\include" "-I.\..\..\3part\opencv3.4.1\include\opencv" "-I.\..\..\3part\opencv3.4.1\include\opencv2" "-I.\..\..\src\lpbdesigner" "-I.\..\..\3part\tadpole\include\tpBase"</Command>
</CustomBuild> </CustomBuild>
<CustomBuild Include="QSetCenterDlg.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_CORE_LIB -DLPDESIGNER_LIB -D%(PreprocessorDefinitions) "-I." "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWebKit" "-I$(QTDIR)\include\QtPrintSupport" "-I$(QTDIR)\include\QtWebkitWidgets" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\..\..\include\lpdesigner\algela" "-I.\..\..\include\lpdesigner" "-I.\..\..\src\lpbdesigner\GeneratedFiles" "-I.\..\..\src\ColossusBase" "-I.\..\..\3part\opencv3.4.1\include" "-I.\..\..\3part\opencv3.4.1\include\opencv" "-I.\..\..\3part\opencv3.4.1\include\opencv2" "-I.\..\..\src\lpbdesigner" "-I.\..\..\3part\tadpole\include\tpBase"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DLPDESIGNER_LIB -D%(PreprocessorDefinitions) "-I." "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWebKit" "-I$(QTDIR)\include\QtPrintSupport" "-I$(QTDIR)\include\QtWebkitWidgets" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\..\..\include\lpdesigner\algela" "-I.\..\..\include\lpdesigner" "-I.\..\..\src\lpbdesigner\GeneratedFiles" "-I.\..\..\src\ColossusBase" "-I.\..\..\3part\opencv3.4.1\include" "-I.\..\..\3part\opencv3.4.1\include\opencv" "-I.\..\..\3part\opencv3.4.1\include\opencv2" "-I.\..\..\src\lpbdesigner" "-I.\..\..\3part\tadpole\include\tpBase"</Command>
</CustomBuild>
<ClInclude Include="resource1.h" /> <ClInclude Include="resource1.h" />
<CustomBuild Include="..\..\src\lpbdesigner\algela\lpImgViewer.h" /> <CustomBuild Include="..\..\src\lpbdesigner\algela\lpImgViewer.h" />
<ClInclude Include="..\..\src\lpbdesigner\DrawTool.h" /> <ClInclude Include="..\..\src\lpbdesigner\DrawTool.h" />
@ -200,6 +212,9 @@
<ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Debug\moc_MainFrame.cpp"> <ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Debug\moc_MainFrame.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Debug\moc_QSetCenterDlg.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Debug\moc_RoiScene.cpp"> <ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Debug\moc_RoiScene.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
@ -230,6 +245,9 @@
<ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Release\moc_MainFrame.cpp"> <ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Release\moc_MainFrame.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Release\moc_QSetCenterDlg.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Release\moc_RoiScene.cpp"> <ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Release\moc_RoiScene.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile> </ClCompile>
@ -242,6 +260,7 @@
<ClCompile Include="..\..\src\lpbdesigner\SystemStateInfo.cpp" /> <ClCompile Include="..\..\src\lpbdesigner\SystemStateInfo.cpp" />
<ClCompile Include="lpdesignerConfig.cpp" /> <ClCompile Include="lpdesignerConfig.cpp" />
<ClCompile Include="lpImgViewer.cpp" /> <ClCompile Include="lpImgViewer.cpp" />
<ClCompile Include="QSetCenterDlg.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<CustomBuild Include="..\..\src\lpbdesigner\image.qrc"> <CustomBuild Include="..\..\src\lpbdesigner\image.qrc">
@ -313,6 +332,19 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild> </CustomBuild>
<None Include="lpdesigner_en.ts" /> <None Include="lpdesigner_en.ts" />
<CustomBuild Include="QSetCenterDlg.ui">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="lpdesigner1.rc" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">

@ -76,6 +76,12 @@
<ClInclude Include="..\..\src\lpbdesigner\CDetectorUI.h"> <ClInclude Include="..\..\src\lpbdesigner\CDetectorUI.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_QSetCenterDlg.h">
<Filter>Generated Files</Filter>
</ClInclude>
<ClInclude Include="resource2.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<CustomBuild Include="..\..\src\lpbdesigner\MainFrame.h"> <CustomBuild Include="..\..\src\lpbdesigner\MainFrame.h">
@ -123,6 +129,12 @@
<CustomBuild Include="lpdesignerConfig.h"> <CustomBuild Include="lpdesignerConfig.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</CustomBuild> </CustomBuild>
<CustomBuild Include="QSetCenterDlg.h">
<Filter>Header Files</Filter>
</CustomBuild>
<CustomBuild Include="QSetCenterDlg.ui">
<Filter>Form Files</Filter>
</CustomBuild>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\src\lpbdesigner\DrawTool.cpp"> <ClCompile Include="..\..\src\lpbdesigner\DrawTool.cpp">
@ -224,6 +236,15 @@
<ClCompile Include="lpdesignerConfig.cpp"> <ClCompile Include="lpdesignerConfig.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Debug\moc_QSetCenterDlg.cpp">
<Filter>Generated Files\Debug</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lpbdesigner\GeneratedFiles\Release\moc_QSetCenterDlg.cpp">
<Filter>Generated Files\Release</Filter>
</ClCompile>
<ClCompile Include="QSetCenterDlg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Image Include="..\..\src\lpbdesigner\resource\app.png"> <Image Include="..\..\src\lpbdesigner\resource\app.png">
@ -235,4 +256,7 @@
<Filter>Translation Files</Filter> <Filter>Translation Files</Filter>
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup>
<ResourceCompile Include="lpdesigner1.rc" />
</ItemGroup>
</Project> </Project>

Binary file not shown.

Binary file not shown.

@ -0,0 +1,14 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by lpdesigner1.rc
// 新对象的下一组默认值
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

@ -127,9 +127,12 @@ Q_SLOT void QAlgParamDlg::onChangeBG()
createfile->remove(DstPath); createfile->remove(DstPath);
//} //}
} }
if (!QFile::copy(sourcePath, DstPath)) { QImage img;// (sourcePath);
img.load(sourcePath);
img.save(DstPath);
//if (!QFile::copy(sourcePath, DstPath)) {
//return false; //return false;
} //}
//emit sgChangeBG(DstPath); //emit sgChangeBG(DstPath);
QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("背景图更新完成,请重启本软件."), QMessageBox::Yes, NULL); QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("背景图更新完成,请重启本软件."), QMessageBox::Yes, NULL);
infobox.setWindowIcon(QIcon(":/image/leaper")); infobox.setWindowIcon(QIcon(":/image/leaper"));

@ -459,6 +459,8 @@ Q_SLOT void QModelMgrDlg::onChangeModelName()
emit(m_pCtrl->sgModelChanged()); emit(m_pCtrl->sgModelChanged());
onShowModelInfo(m_newName); onShowModelInfo(m_newName);
onShowModelPic(m_newName); onShowModelPic(m_newName);
emit sgModeModeName(strModel, m_newName);
} }
Q_SLOT void QModelMgrDlg::onProgassCancel() Q_SLOT void QModelMgrDlg::onProgassCancel()

@ -117,6 +117,7 @@ void QPLCDevice::onParaster(QByteArray recvData)
else if (cmd.toInt() == 2) //ÐÄÌøÓ¦´ð else if (cmd.toInt() == 2) //ÐÄÌøÓ¦´ð
{ {
onSendHeartBit(); onSendHeartBit();
emit sgRecvHeartBit();
} }
else if (cmd.toInt() == 3) else if (cmd.toInt() == 3)
{ {

@ -36,6 +36,7 @@ signals:
void sgTrigerCam(int camID); void sgTrigerCam(int camID);
void sgSendDataCallBack(QByteArray); void sgSendDataCallBack(QByteArray);
void sgRecvDataCallBack(QByteArray); void sgRecvDataCallBack(QByteArray);
void sgRecvHeartBit();
private: private:
lptkRawTcpServer *m_rawTcpServer{ nullptr }; lptkRawTcpServer *m_rawTcpServer{ nullptr };
QMutex mMtLock; QMutex mMtLock;

@ -22,9 +22,9 @@
#include "databasesql.h" #include "databasesql.h"
#include "lpCryptokey.h" #include "lpCryptokey.h"
#define VERSION_HUB "3.0.1.9" #define VERSION_HUB "3.0.3.0"
#define VERSION_ALG "3.0.1.4" #define VERSION_ALG "3.0.1.4"
#define UPDATE_TIME "2021-11-10" #define UPDATE_TIME "2021-12-03"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
#define MODEL_UI_ICON_NONE ":/image/no-img" #define MODEL_UI_ICON_NONE ":/image/no-img"
@ -206,6 +206,7 @@ lpMainWin::lpMainWin(QWidget *parent)
connect(m_pModelMgrDlg, SIGNAL(sgUpdatedefect()), this, SLOT(onUpdateDefect()));//更新检测列表 connect(m_pModelMgrDlg, SIGNAL(sgUpdatedefect()), this, SLOT(onUpdateDefect()));//更新检测列表
connect(m_pModelMgrDlg, SIGNAL(sgAddNewModel(QString)), this, SLOT(onSlotAddNewModel(QString)));//新建模板型号 connect(m_pModelMgrDlg, SIGNAL(sgAddNewModel(QString)), this, SLOT(onSlotAddNewModel(QString)));//新建模板型号
connect(m_pModelMgrDlg, SIGNAL(sgDelOldModel(QString)), this, SLOT(onSlotDelOldModel(QString)));//删除模板型号 connect(m_pModelMgrDlg, SIGNAL(sgDelOldModel(QString)), this, SLOT(onSlotDelOldModel(QString)));//删除模板型号
connect(m_pModelMgrDlg, SIGNAL(sgModeModeName(QString,QString)), this, SLOT(onSlotModModel(QString,QString)));//删除模板型号
m_pDebugDlg = new QDebugDlg();//调试界面 m_pDebugDlg = new QDebugDlg();//调试界面
m_pDebugDlg->onSetCtrl(m_pCtrl); m_pDebugDlg->onSetCtrl(m_pCtrl);
@ -1661,6 +1662,20 @@ Q_SLOT void lpMainWin::onSlotDelOldModel(QString strName)
} }
} }
} }
Q_SLOT void lpMainWin::onSlotModModel(QString strOldName, QString strNewName)
{
if (m_pEngineCtrl) {
IDetectorSolutionMgr* pMgr = m_pEngineCtrl->getSolutionMgr();
if (pMgr) {
IDetectorSolution* pSolution = pMgr->GetRunSolution();
if (pSolution) {
pSolution->ModifyTask(strOldName, strNewName);
pSolution->SaveTaskByName("");
}
}
}
}
/* /*
1 1

@ -83,6 +83,7 @@ private:
Result2Ui *parseMap(const QVariantMap &vMap); Result2Ui *parseMap(const QVariantMap &vMap);
Q_SLOT void onSlotAddNewModel(QString strName); Q_SLOT void onSlotAddNewModel(QString strName);
Q_SLOT void onSlotDelOldModel(QString strName); Q_SLOT void onSlotDelOldModel(QString strName);
Q_SLOT void onSlotModModel(QString strOldName, QString strNewName);
void onSaveValveResult(ValueResult &rlt); void onSaveValveResult(ValueResult &rlt);
protected: protected:
bool onInitCoreCtrl();//核心模块ctrol初始化 bool onInitCoreCtrl();//核心模块ctrol初始化

@ -0,0 +1,129 @@
#ifndef _H_DUMPFILE_H_
#define _H_DUMPFILE_H_
/*!
*FileName: dumpfile.h
*Author: Pan Yingdong
*Email: bob.pan@hzleaper.com
*Created:2020/5/19 16:02
*Note:
*/
#include <windows.h>
#include <Dbghelp.h>
#include <iostream>
#include <vector>
#include <tchar.h>
#include <iomanip>
#include <ctime>
#include <chrono>
using namespace std;
using namespace std::chrono;
#pragma comment(lib, "Dbghelp.lib")
namespace NSDumpFile
{
void CreateDumpFile(LPCWSTR lpstrDumpFilePathName, EXCEPTION_POINTERS *pException)
{
// 创建Dump文件
//
HANDLE hDumpFile = CreateFile(lpstrDumpFilePathName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
// Dump信息
//
MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
dumpInfo.ExceptionPointers = pException;
dumpInfo.ThreadId = GetCurrentThreadId();
dumpInfo.ClientPointers = TRUE;
// 写入Dump文件内容
//
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL);
CloseHandle(hDumpFile);
}
LPTOP_LEVEL_EXCEPTION_FILTER WINAPI MyDummySetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter)
{
return NULL;
}
BOOL PreventSetUnhandledExceptionFilter()
{
HMODULE hKernel32 = LoadLibrary(_T("kernel32.dll"));
if (hKernel32 == NULL)
return FALSE;
void *pOrgEntry = GetProcAddress(hKernel32, "SetUnhandledExceptionFilter");
if (pOrgEntry == NULL)
return FALSE;
unsigned char newJump[100];
DWORD dwOrgEntryAddr = (DWORD)pOrgEntry;
dwOrgEntryAddr += 5; // add 5 for 5 op-codes for jmp far
void *pNewFunc = &MyDummySetUnhandledExceptionFilter;
DWORD dwNewEntryAddr = (DWORD)pNewFunc;
DWORD dwRelativeAddr = dwNewEntryAddr - dwOrgEntryAddr;
newJump[0] = 0xE9; // JMP absolute
memcpy(&newJump[1], &dwRelativeAddr, sizeof(pNewFunc));
SIZE_T bytesWritten;
BOOL bRet = WriteProcessMemory(GetCurrentProcess(), pOrgEntry, newJump, sizeof(pNewFunc) + 1, &bytesWritten);
return bRet;
}
LONG WINAPI UnhandledExceptionFilterEx(struct _EXCEPTION_POINTERS *pException)
{
TCHAR szMbsFile[MAX_PATH] = { 0 };
::GetModuleFileName(NULL, szMbsFile, MAX_PATH);
TCHAR* pFind = _tcsrchr(szMbsFile, '\\');
if (pFind)
{
*(pFind + 1) = 0;
char buffer[80];
time_t rawtime;
struct tm info;
time(&rawtime);
localtime_s(&info, &rawtime);
TCHAR szMbsFile[MAX_PATH] = { 0 };
strftime(buffer, 80, "%Y-%m-%d %H-%M-%S", &info);
std::string strName = buffer;
strName += ".dmp";
_stprintf_s(szMbsFile, MAX_PATH, _T("%S"), strName.c_str());
CreateDumpFile(szMbsFile, pException);
}
// TODO: MiniDumpWriteDump
FatalAppExit(-1, _T("Fatal Error"));
return EXCEPTION_CONTINUE_SEARCH;
}
void RunCrashHandler()
{
SetUnhandledExceptionFilter(UnhandledExceptionFilterEx);
PreventSetUnhandledExceptionFilter();
}
};
#define DeclareDumpFile() NSDumpFile::RunCrashHandler();
/*
使
main
mainDeclareDumpFile()
*/
#endif

@ -1,8 +1,10 @@
#include "valueMainUI.h" #include "valueMainUI.h"
#include <QtWidgets/QApplication> #include <QtWidgets/QApplication>
#include "QSignleApplication.h" #include "QSignleApplication.h"
#include "dumpfile.h"
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
DeclareDumpFile();
SingleApplication a(argc, argv,"valueMain"); SingleApplication a(argc, argv,"valueMain");
if (!a.getInstanceRunning()) if (!a.getInstanceRunning())
{ {

@ -29,7 +29,7 @@ valueMainUI::valueMainUI(QWidget *parent)
setupTrayIcon();//后台任务栏初始化 setupTrayIcon();//后台任务栏初始化
setWindowIcon(QIcon(WINDOWICON)); setWindowIcon(QIcon(WINDOWICON));
setWindowTitle(tr("识别定位一体检测系统(v1.0.5 21.11.11)")); setWindowTitle(tr("识别定位一体检测系统(v1.0.7 21.11.19)"));
lpGlobalData::instance(); lpGlobalData::instance();
lpConfig::instance()->loadConfig(); lpConfig::instance()->loadConfig();
@ -127,6 +127,8 @@ valueMainUI::valueMainUI(QWidget *parent)
connect(m_pPlcDevice, SIGNAL(sgSendAlgResult(int)), this, SLOT(onSendAlgResult(int))); connect(m_pPlcDevice, SIGNAL(sgSendAlgResult(int)), this, SLOT(onSendAlgResult(int)));
connect(m_pPlcDevice, SIGNAL(sgSendDataCallBack(QByteArray)), this, SLOT(onShowSendTcpData(QByteArray))); connect(m_pPlcDevice, SIGNAL(sgSendDataCallBack(QByteArray)), this, SLOT(onShowSendTcpData(QByteArray)));
connect(m_pPlcDevice, SIGNAL(sgRecvDataCallBack(QByteArray)), this, SLOT(onShowRecvTcpData(QByteArray))); connect(m_pPlcDevice, SIGNAL(sgRecvDataCallBack(QByteArray)), this, SLOT(onShowRecvTcpData(QByteArray)));
connect(m_pPlcDevice, SIGNAL(sgRecvHeartBit()), this, SLOT(onReacvHeartBit()));
} }
{ {
@ -628,13 +630,22 @@ void valueMainUI::timerEvent(QTimerEvent *event)
bool bConnect = m_pPlcDevice->getClinetInfo(clientInfo); bool bConnect = m_pPlcDevice->getClinetInfo(clientInfo);
if (bConnect == true) if (bConnect == true)
{ {
m_heartTimeout++;
if (m_heartTimeout > 10)
{
QString plc = QString(tr("PLC 心跳超时 %1 ").arg(clientInfo));
m_pLabelPLC->setText(plc);
m_pLabelPLC->setStyleSheet("background-color: rgb(200, 170, 24);");
}
else {
QString plc = QString(tr("PLC客户端 %1").arg(clientInfo)); QString plc = QString(tr("PLC客户端 %1").arg(clientInfo));
m_pLabelPLC->setText(plc); m_pLabelPLC->setText(plc);
m_pLabelPLC->setStyleSheet("background-color: rgb(63, 170, 24);"); m_pLabelPLC->setStyleSheet("background-color: rgb(63, 170, 24);");
} }
}
else { else {
m_pLabelPLC->setText(tr("PLC客户端未连接")); m_pLabelPLC->setText(tr("PLC客户端未连接"));
m_pLabelPLC->setStyleSheet("background-color: rgb(200, 200, 10);"); m_pLabelPLC->setStyleSheet("background-color: rgb(200, 10, 10);");
} }
} }
QString m_currentTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); QString m_currentTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
@ -1162,3 +1173,9 @@ Q_SLOT void valueMainUI::onSendAlgResult(int camID)
} }
} }
} }
Q_SLOT void valueMainUI::onReacvHeartBit()
{
m_heartTimeout = 0;
}

@ -74,6 +74,7 @@ private://trayIcon
void SetTranslator(const QString strPath); void SetTranslator(const QString strPath);
Q_SLOT void onLanguageChange(QString strLanguage); Q_SLOT void onLanguageChange(QString strLanguage);
Q_SLOT void onSendAlgResult(int camID); Q_SLOT void onSendAlgResult(int camID);
Q_SLOT void onReacvHeartBit();
protected: protected:
virtual void timerEvent(QTimerEvent *event); virtual void timerEvent(QTimerEvent *event);
virtual void closeEvent(QCloseEvent *event); virtual void closeEvent(QCloseEvent *event);
@ -105,7 +106,7 @@ private:
bool m_bRunStateB{ false }; bool m_bRunStateB{ false };
int m_SysTimerID{ 0 }; int m_SysTimerID{ 0 };
quint64 m_tickCount{ 0 }; quint64 m_tickCount{ 0 };
int m_heartTimeout{ 0 };
QStringList m_appNames;//´Ó»úappÃû QStringList m_appNames;//´Ó»úappÃû
lpTcpClient* tcp_client_ptr_A{ nullptr }; lpTcpClient* tcp_client_ptr_A{ nullptr };

@ -164,6 +164,7 @@
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;.\..\..\src\tpMain\algela;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\lp_libtcp\include;.\..\..\src\tpMain</IncludePath> <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;.\..\..\src\tpMain\algela;.\..\..\3part\tadpole\include\tpBase;.\..\..\3part\lp_libtcp\include;.\..\..\src\tpMain</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include;E:\wheelValve\src\tpMain</IncludePath> <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase;$(QTDIR)\include\QtLocation;$(QTDIR)\include\QtNetwork;E:\wheelValve\3part\lp_libtcp\include;E:\wheelValve\src\tpMain</IncludePath>
</QtMoc> </QtMoc>
<ClInclude Include="dumpfile.h" />
<ClInclude Include="lpConfig.h"> <ClInclude Include="lpConfig.h">
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase</IncludePath> <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;.\..\..\src\tpMain\algela;E:\wheelValve\3part\tadpole\include\tpBase</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets</IncludePath> <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets</IncludePath>

@ -187,6 +187,9 @@
<ClInclude Include="lpGlobalData.h"> <ClInclude Include="lpGlobalData.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="dumpfile.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="valueMainUI.rc" /> <ResourceCompile Include="valueMainUI.rc" />

@ -91,6 +91,7 @@ bool algEg::Exec(IDetectorTask *lpTask, IDetectorAlgorithm* lpAlgorithm)
// add original center // add original center
paramInput.originalPoint = Point2f(pt.x(), pt.y()); paramInput.originalPoint = Point2f(pt.x(), pt.y());
paramInput.nCenterAlg = lpAlgorithm->GetParamValue("centerAlg", LP_INT).toInt(); paramInput.nCenterAlg = lpAlgorithm->GetParamValue("centerAlg", LP_INT).toInt();
double centeroffset = lpAlgorithm->GetParamValue("centerOffset", LP_INT).toInt();
// add background // add background
paramInput.backGround = lpAlgorithm->GetParamValue("background", LP_MAT).value<cv::Mat>(); paramInput.backGround = lpAlgorithm->GetParamValue("background", LP_MAT).value<cv::Mat>();
luffy_imageProc::createImage(paramInput.backGround, paramInput.backGround, luffy_imageProc::emCreateGray); luffy_imageProc::createImage(paramInput.backGround, paramInput.backGround, luffy_imageProc::emCreateGray);
@ -109,7 +110,7 @@ bool algEg::Exec(IDetectorTask *lpTask, IDetectorAlgorithm* lpAlgorithm)
else else
{ {
float dis = luffy_math::disofPoints(paramInput.originalPoint, paramInput.ptCenter); float dis = luffy_math::disofPoints(paramInput.originalPoint, paramInput.ptCenter);
if (dis > 25) if (dis > centeroffset)
{ {
bExist = false; bExist = false;
paramOutput.nErrorType += 8; paramOutput.nErrorType += 8;
@ -216,6 +217,8 @@ bool algEg::Exec(IDetectorTask *lpTask, IDetectorAlgorithm* lpAlgorithm)
bool algEg::Init(IDetectorTask *lpTask, IDetectorAlgorithm* lpAlgorithm) bool algEg::Init(IDetectorTask *lpTask, IDetectorAlgorithm* lpAlgorithm)
{ {
LP_ALGORITHM_PARAM param1_centeroffset("centerOffset", LP_INT, 25, QObject::tr("圆心偏差距离,单位像素"));
lpAlgorithm->AddParam(&param1_centeroffset, 1);
LP_ALGORITHM_PARAM param1_1("backgroundThresh", LP_INT, 15, QObject::tr("背景差异性阈值")); LP_ALGORITHM_PARAM param1_1("backgroundThresh", LP_INT, 15, QObject::tr("背景差异性阈值"));
lpAlgorithm->AddParam(&param1_1, 1); lpAlgorithm->AddParam(&param1_1, 1);

Loading…
Cancel
Save