增加不同条件约束图像保存和删除功能

master
bobpan 5 years ago
parent 3d6e8a4ac5
commit 4848db8918

@ -23,7 +23,6 @@ public:
virtual QVariant getVariant(){ return QVariant(); }
virtual void revResult() = 0;
virtual bool trigImage() = 0;
virtual bool isWorkingOk() = 0;
virtual QString currentRunningModel() const = 0;
virtual void setCurrentModel(QString strModel) = 0;

@ -450,11 +450,6 @@ WfModel * Station::wfModel(QString str)
}
bool Station::isWorkingOk()
{
return true;
}
QString Station::modelByPlcCmd(int nIndex)
{
//qWarning() << "modelByPlcCmd, nIndex is :" << nIndex;

@ -32,7 +32,6 @@ public:
virtual QVariant getVariant();
virtual void revResult();
virtual bool trigImage();
virtual bool isWorkingOk();
virtual QString currentRunningModel() const { return m_strCurrentModel; }
virtual QString currentSelectModel();

@ -28,7 +28,7 @@ CWfCtrl::CWfCtrl(ICoreCtrl* p1, WfColossus* p3)
QString strSrcImgPath = QCoreApplication::applicationDirPath() + "/DBFiles/SrcImages/";
QDiskCleanThread *pDCleanThread = new QDiskCleanThread;
pDCleanThread->setModel(CleanDir);
pDCleanThread->setUseFlag(lpSysConfig::instance()->m_CheckEnable);
pDCleanThread->setUseFlag(lpSysConfig::instance()->m_CheckEnable_SrcImg);
pDCleanThread->setDays(lpSysConfig::instance()->m_CheckFileDays);
pDCleanThread->SetImgStorageFolder(strSrcImgPath);
pDCleanThread->setMiniSize(lpSysConfig::instance()->m_MinSpaceSizeG);
@ -38,7 +38,7 @@ CWfCtrl::CWfCtrl(ICoreCtrl* p1, WfColossus* p3)
QString strRltImgPath = QCoreApplication::applicationDirPath() + "/DBFiles/Images/";
QDiskCleanThread *pCleanDir = new QDiskCleanThread;
pCleanDir->setModel(CleanDir);
pCleanDir->setUseFlag(lpSysConfig::instance()->m_CheckEnable);
pCleanDir->setUseFlag(lpSysConfig::instance()->m_CheckEnable_RltImg);
pCleanDir->setDays(lpSysConfig::instance()->m_CheckFileDays);
pCleanDir->SetImgStorageFolder(strRltImgPath);
pCleanDir->setMiniSize(lpSysConfig::instance()->m_MinSpaceSizeG);
@ -141,6 +141,7 @@ bool CWfCtrl::initStation()
{
if (!m_pCoreCtrl)
return false;
QStringList camKeys = m_pCoreCtrl->ICameraKeys();
for (QStringList::iterator it = camKeys.begin(); it != camKeys.end(); ++it) {
TP_CAMERA_OPTION camOpt;
@ -151,16 +152,16 @@ bool CWfCtrl::initStation()
pStation->setCamInfo(camOpt.id, camOpt.algorithm, camOpt.uniqueName, camOpt.showName);
m_pStationMap.insert(camOpt.uniqueName, pStation);
if (camOpt.deviceType != 100)//虚拟相机模式下不开启定时删除图像的模式
{
QDiskCleanThread *pDCleanThread = new QDiskCleanThread;
pDCleanThread->setUseFlag(lpSysConfig::instance()->m_CheckEnable);
pDCleanThread->setDays(lpSysConfig::instance()->m_CheckFileDays);
pDCleanThread->SetImgStorageFolder(camOpt.folder);
pDCleanThread->setMiniSize(lpSysConfig::instance()->m_MinSpaceSizeG);
pDCleanThread->start();
m_pDCThreadList.append(pDCleanThread);
}
// if (camOpt.deviceType != 100)//虚拟相机模式下不开启定时删除图像的模式
// {
// QDiskCleanThread *pDCleanThread = new QDiskCleanThread;
// pDCleanThread->setUseFlag(lpSysConfig::instance()->m_CheckEnable);
// pDCleanThread->setDays(lpSysConfig::instance()->m_CheckFileDays);
// pDCleanThread->SetImgStorageFolder(camOpt.folder);
// pDCleanThread->setMiniSize(lpSysConfig::instance()->m_MinSpaceSizeG);
// pDCleanThread->start();
// m_pDCThreadList.append(pDCleanThread);
// }
}
return true;
}

@ -208,8 +208,14 @@ void CMainWin::IVariantMapToUI(emTpUiDataType dataType, const QString& camKey, c
QString str2 = pStation->currentRunningModel();
int ID = pStation->stationId();
QString strModelName = QString("%1_%2").arg(ID).arg(str2);
QString strImgPath = genSavePath(strModelName, image);
if(lpSysConfig::instance()->m_bSaveSrcImg == true)
QString strImgPath;
if((lpSysConfig::instance()->m_bSaveRltImg_st1 == true && pStation->stationId() == 1)
||(lpSysConfig::instance()->m_bSaveRltImg_st2 == true && pStation->stationId() == 2))
strImgPath = genSavePath(strModelName, image);
if((lpSysConfig::instance()->m_bSaveSrcImg_st1 == true&&pStation->stationId()==1)
|| (lpSysConfig::instance()->m_bSaveSrcImg_st2 == true && pStation->stationId() == 2))
genSaveSrcImgPath(strModelName, srcImg);
Struct2SaveData nStructData;
nStructData.dAngle = dAngle;
@ -220,7 +226,7 @@ void CMainWin::IVariantMapToUI(emTpUiDataType dataType, const QString& camKey, c
nStructData.stationName = pStation->stationShowName();
nStructData.value1 = strImgPath;
nStructData.value2 = str2;
qWarning() << "Add Result to DB,cam=" << camKey;
//qWarning() << "Add Result to DB,cam=" << camKey;
m_db->addData2DB(nStructData);
}
// else {

@ -26,8 +26,12 @@ void QDeviceMgrUI::setParam()
{
ui.m_lineEdit_ComName->setText(lpSysConfig::instance()->m_ComName);
ui.m_lineEdit_Baute->setText(QString("%1").arg(lpSysConfig::instance()->m_Baut));
ui.checkBox->setChecked(lpSysConfig::instance()->m_bSaveSrcImg);
ui.checkBox_2->setChecked(lpSysConfig::instance()->m_CheckEnable);
ui.checkBox_RltImg->setChecked(lpSysConfig::instance()->m_CheckEnable_RltImg);
ui.checkBox_SrcImg->setChecked(lpSysConfig::instance()->m_CheckEnable_SrcImg);
ui.checkBox_SaveRltImg_st1->setChecked(lpSysConfig::instance()->m_bSaveRltImg_st1);
ui.checkBox_SaveRltImg_st2->setChecked(lpSysConfig::instance()->m_bSaveRltImg_st2);
ui.checkBox_SaveSrcImg_st1->setChecked(lpSysConfig::instance()->m_bSaveSrcImg_st1);
ui.checkBox_SaveSrcImg_st2->setChecked(lpSysConfig::instance()->m_bSaveSrcImg_st2);
ui.spinBox->setValue(lpSysConfig::instance()->m_MinSpaceSizeG);
ui.spinBox_2->setValue(lpSysConfig::instance()->m_CheckFileDays);
@ -37,10 +41,15 @@ void QDeviceMgrUI::getParam()
{
lpSysConfig::instance()->m_ComName = ui.m_lineEdit_ComName->text();
lpSysConfig::instance()->m_Baut = ui.m_lineEdit_Baute->text().toInt();
lpSysConfig::instance()->m_bSaveSrcImg = ui.checkBox->isChecked();
lpSysConfig::instance()->m_CheckEnable = ui.checkBox_2->isChecked();
lpSysConfig::instance()->m_MinSpaceSizeG = ui.spinBox->value();
lpSysConfig::instance()->m_CheckFileDays = ui.spinBox_2->value();
lpSysConfig::instance()->m_CheckEnable_RltImg = ui.checkBox_RltImg->isChecked();
lpSysConfig::instance()->m_CheckEnable_SrcImg = ui.checkBox_SrcImg->isChecked();
lpSysConfig::instance()->m_bSaveRltImg_st1 = ui.checkBox_SaveRltImg_st1->isChecked();
lpSysConfig::instance()->m_bSaveRltImg_st2 = ui.checkBox_SaveRltImg_st2->isChecked();
lpSysConfig::instance()->m_bSaveSrcImg_st1 = ui.checkBox_SaveSrcImg_st1->isChecked();
lpSysConfig::instance()->m_bSaveSrcImg_st2 = ui.checkBox_SaveSrcImg_st2->isChecked();
}
void QDeviceMgrUI::showEvent(QShowEvent *event)

@ -6,15 +6,82 @@
<rect>
<x>0</x>
<y>0</y>
<width>442</width>
<height>195</height>
<width>470</width>
<height>274</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="windowTitle">
<string>设备管理</string>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="title">
<string>通讯设备配置:</string>
</property>
<layout class="QGridLayout" name="gridLayout_11">
<item row="1" column="1">
<widget class="QLineEdit" name="m_lineEdit_Baute">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_18">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>波特率:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_10">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>串口名:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="m_lineEdit_ComName">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
@ -62,202 +129,193 @@
</item>
</layout>
</item>
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="title">
<string>通讯设备配置:</string>
</property>
<layout class="QGridLayout" name="gridLayout_11">
<item row="0" column="0">
<widget class="QLabel" name="label_10">
<item row="1" column="0">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>图像保存:</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QCheckBox" name="checkBox_SaveRltImg_st1">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>保存工位1结果图</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox_SaveRltImg_st2">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>保存工位2结果图</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="checkBox_SaveSrcImg_st1">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>保存工位1原图</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="checkBox_SaveSrcImg_st2">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>保存工位2原图</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="1" rowspan="2">
<widget class="QGroupBox" name="groupBox_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="title">
<string>维护相关:</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="1">
<widget class="QCheckBox" name="checkBox_SrcImg">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>是否启用原图定期删除功能</string>
</property>
</widget>
</item>
<item row="3" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_6">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>串口名:</string>
<string>超期天数</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="m_lineEdit_ComName">
<item>
<widget class="QSpinBox" name="spinBox_2">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_18">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
<property name="suffix">
<string>天</string>
</property>
<property name="text">
<string>波特率:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<property name="minimum">
<number>1</number>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="m_lineEdit_Baute">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
<property name="maximum">
<number>360</number>
</property>
</widget>
</item>
<item row="2" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="0" column="1">
<widget class="QGroupBox" name="groupBox_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="title">
<string>其他相关:</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QCheckBox" name="checkBox">
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>是否保存原图功能</string>
<string>预留磁盘大小:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox_2">
<item>
<widget class="QSpinBox" name="spinBox">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>是否启用定期删除功能</string>
<property name="suffix">
<string>G</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>10000</number>
</property>
</widget>
</item>
<item row="2" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>预留磁盘大小:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="suffix">
<string>G</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>10000</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_6">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>超期天数:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_2">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="suffix">
<string>天</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>360</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="checkBox_RltImg">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>是否启用结果图定期删除功能</string>
</property>
</widget>
</item>
<item row="4" 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>
</layout>
</widget>
</item>
</layout>
</widget>

@ -21,12 +21,16 @@ void lpSysConfig::readConfig()
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_CheckEnable_RltImg = setting.value("CheckThread/Enable_RltImg", false).toBool();
m_CheckEnable_SrcImg = setting.value("CheckThread/Enable_SrcImg", false).toBool();
m_TrigerFilter = setting.value("TrigDetector/FilterTime", 10).toInt();
m_bSaveSrcImg = setting.value("Image/Save", false).toBool();
m_bSaveSrcImg_st1 = setting.value("Image/SrcImgSave_st1", false).toBool();
m_bSaveSrcImg_st2 = setting.value("Image/SrcImgSave_st2", false).toBool();
m_bSaveRltImg_st1 = setting.value("Image/RltImgSave_st1", false).toBool();
m_bSaveRltImg_st2 = setting.value("Image/RltImgSave_st2", false).toBool();
}
void lpSysConfig::writeConfig()
@ -38,10 +42,14 @@ void lpSysConfig::writeConfig()
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("CheckThread/Enable_RltImg", m_CheckEnable_RltImg);
setting.setValue("CheckThread/Enable_SrcImg", m_CheckEnable_SrcImg);
setting.setValue("TrigDetector/FilterTime", m_TrigerFilter);
setting.setValue("Image/Save", m_bSaveSrcImg);
setting.setValue("Image/SrcImgSave_st1", m_bSaveSrcImg_st1);
setting.setValue("Image/SrcImgSave_st2", m_bSaveSrcImg_st2);
setting.setValue("Image/RltImgSave_st1", m_bSaveRltImg_st1);
setting.setValue("Image/RltImgSave_st2", m_bSaveRltImg_st2);
}

@ -23,12 +23,17 @@ public:
int m_CheckFileDays{ 7 };//检测保存图片超过的时间bmp格式的图片 由算法自动保存的2~5M大小
int m_CheckDirDays{ 30 };//检测保存结果图片文件夹超过的时间(保存的是缩略图 100多k大小的图片
bool m_CheckEnable{ false };
int m_MinSpaceSizeG{ 10 };//G
bool m_CheckEnable_SrcImg{ false };
bool m_CheckEnable_RltImg{ false };
int m_TrigerFilter{ 10 };
bool m_bSaveSrcImg{ false };
bool m_bSaveSrcImg_st1{ false };
bool m_bSaveSrcImg_st2{ false };
bool m_bSaveRltImg_st1{ false };
bool m_bSaveRltImg_st2{ false };
private:
QString m_CfgPath;
};

@ -1725,7 +1725,8 @@ cv::Point2f ValveDetector::getCenter(Mat & imgSrc, Point2f pt, InputParam &param
bool ValveDetector::saveResult(Mat &img, InputParam &paramIn, OutputParam &paramOut, QString modelStr)
{
if (0 == paramOut.nErrorType) {
return true;
/* if (0 == paramOut.nErrorType) {
return true;
}
QString strName = "";
@ -1745,7 +1746,7 @@ bool ValveDetector::saveResult(Mat &img, InputParam &paramIn, OutputParam &param
strName = str + strName;
bool bSave = cv::imwrite(strName.toLocal8Bit().data(), img);
qDebug() << "save error image:" << bSave;
return true;
return true;*/
}
void ValveDetector::drawToImage(Mat &img, InputParam &paramIn, OutputParam &paramOut)

Loading…
Cancel
Save