检测流程初步跑通

master
bob.pan 4 years ago
parent 5a53788f9b
commit a21bf78938

@ -5,7 +5,26 @@
"board_num": 0,
"board_type": 0,
"exposure": 100000,
"folder": "H:\\新建文件夹\\7\\",
"folder": "F:\\ValueProject\\TestImage\\A1\\",
"format": "GRAY8",
"gain": 8,
"height": 1200,
"id": 1,
"loop": 1,
"rely_on_camera": "",
"save": 0,
"save_img_suffix": ".BMP",
"showname": "工位1",
"type": 100,
"width": 2048,
"zoom": 1
},
"MV-CA050-10GC 10784638609": {
"algorithm": 0,
"board_num": 0,
"board_type": 0,
"exposure": 100000,
"folder": "F:\\ValueProject\\TestImage\\B2\\",
"format": "GRAY8",
"gain": 8,
"height": 1200,

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -49,7 +49,7 @@ signals:
void sgPrint2Window(QString &);
void sgUpdateLable();
void sgShowImage(const QImage &img);
void sgShowModeName(int, QString);
void sgShowModeName(QString, QString);
protected:
ISerialPortTool *m_pPort{ nullptr };
};

@ -156,8 +156,7 @@ bool Station::updateCurrentModel2Label()
strText = strText.arg("color:#ff0000;").arg(QObject::tr("工位"))
.arg(nId).arg(m_strCurrentModel == "" ? "?" : m_strCurrentModel)
.arg(bCali == true ? QObject::tr("已标定") : QObject::tr("未标定"));
emit sgShowModeName(nId, strText);
emit sgShowModeName(strSolutionName, strText);
return true;
}

@ -240,11 +240,6 @@ bool CWfCtrl::ISelModel(QString nStation, QString strModel)
IStation *pStation = IGetStationByKey(nStation);
if (pStation) {
pStation->setCurrentModel(strModel);
// if (m_pColossus) {
// //需要测试
// m_pColossus->selModel(nStation, strModel);
// //m_pColossus->ReSetModifyState();
// }
}
return true;

@ -13,6 +13,7 @@
#include "lpGlobalConfig.h"
#define LEAPER_LOGO ":/leaper/Resource/app.png"
#define WINDOWS_ICON ":/leaper/Resource/app.png"
#define DELETE_POINTER(p) if (p) {delete p; p = NULL;}
#pragma execution_character_set("utf-8")
@ -80,10 +81,11 @@ CMainWin::CMainWin(QWidget *parent)
onInitSerial();
onInitUser();
onInitUI();
onInitStatus();
lpSysLog::instance()->Init();
lpSysConfig::instance()->readConfig();
lpSysConfig::instance()->writeConfig();
lpGlobalConfig::instance()->readConfig();
SYSLOG_STATUS << "系统启动";
{
QString strPath = QCoreApplication::applicationDirPath();
@ -96,7 +98,7 @@ CMainWin::CMainWin(QWidget *parent)
m_pCameraTrig = new AutoTrigger;
connect(m_pCameraTrig, SIGNAL(sgTrig()), this, SLOT(onTrigImage()));
onInitStatus();
connect(&m_devMgrWid, SIGNAL(sgChangeLanguage(QString)), this, SLOT(onLanguageChange(QString)));
connect(&m_testWid, SIGNAL(sgTestMode(int)), this, SLOT(onTestMode(int)));
@ -105,6 +107,22 @@ CMainWin::CMainWin(QWidget *parent)
m_pWfCtrl->onInit();
m_mangeWid.onInitModelList(m_pWfCtrl);
QStringList strList = m_pWfCtrl->IGetStationKeys();
foreach(QString str, strList) {
IStation *pS = m_pWfCtrl->IGetStationByKey(str);
connect(pS, SIGNAL(sgShowModeName(QString, QString)), this, SLOT(onShowName(QString, QString)));
}
{
if (m_pDetectorEngine)
{
QStringList Names = m_pDetectorEngine->getSolutionMgr()->GetAllSolutions().keys();
}
}
m_pWfCtrl->ISelModel(lpGlobalConfig::instance()->m_StationSolution_1, lpGlobalConfig::instance()->m_StationRunModel_1);
m_pWfCtrl->ISelModel(lpGlobalConfig::instance()->m_StationSolution_2, lpGlobalConfig::instance()->m_StationRunModel_2);
}
CMainWin::~CMainWin()
@ -161,28 +179,45 @@ void CMainWin::INewCameraImage(const QString& camKey, QImage img)
{
emit sgShowSrcImg(camKey, img);
QString solutionName = lpGlobalConfig::instance()->m_CamKeySolution.value(camKey);
QString solutionName;
QString strRunModel;
int stationID = 0;
if (camKey == lpGlobalConfig::instance()->m_StationCamKey_1)
{
solutionName = lpGlobalConfig::instance()->m_StationSolution_1;
strRunModel = lpGlobalConfig::instance()->m_StationRunModel_1;
stationID = 1;
}
else if (camKey == lpGlobalConfig::instance()->m_StationCamKey_2)
{
solutionName = lpGlobalConfig::instance()->m_StationSolution_2;
strRunModel = lpGlobalConfig::instance()->m_StationRunModel_2;
stationID = 2;
}
onShowImage(stationID, img);
if (solutionName.isEmpty())
{
}
else {
QString strMode = lpGlobalConfig::instance()->m_curRunModel.value(solutionName);
QString strMode = strRunModel;
cv::Mat srcMat = QImageToMat(img);
AlgResultCallBack func = std::bind(&CMainWin::IEngineResult, this, std::placeholders::_1);
m_pDetectorEngine->detectByName(srcMat, solutionName, strMode, func);
}
}
//算法结果接收
void CMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
{
return;
QImage srcImg = vMap.value("srcImage").value<QImage>();
cv::Mat srcMat = QImageToMat(srcImg);
QString strMode;// = pResult->m_strModel;
AlgResultCallBack func = std::bind(&CMainWin::IEngineResult, this, std::placeholders::_1);
m_pDetectorEngine->detect(srcMat, strMode, func);
// return;
// QImage srcImg = vMap.value("srcImage").value<QImage>();
// cv::Mat srcMat = QImageToMat(srcImg);
// QString strMode;// = pResult->m_strModel;
// AlgResultCallBack func = std::bind(&CMainWin::IEngineResult, this, std::placeholders::_1);
// m_pDetectorEngine->detect(srcMat, strMode, func);
@ -581,6 +616,12 @@ Q_SLOT void CMainWin::onActionClicked()
m_devMgrWid.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_devMgrWid.setWindowModality(Qt::ApplicationModal);
m_devMgrWid.setAttribute(Qt::WA_ShowModal, true);
QStringList camkeys = m_pCoreCtrl->ICameraKeys();
QStringList solutions = m_pDetectorEngine->getSolutionMgr()->GetAllSolutions().keys();
m_devMgrWid.setSystemConfig(camkeys, solutions);
m_devMgrWid.show();
}
else if ("main_Login_action" == strObj) {//用户登陆
@ -994,13 +1035,16 @@ Q_SLOT void CMainWin::onMainFrameClose()
Q_SLOT void CMainWin::onSnapImage(int nCamera /*= -1*/)
{
/* IStation *pStation = m_pWfCtrl->IGetStationById(nCamera);
if (!pStation) {
return;
if (nCamera == 1)
{
QString camKey = lpGlobalConfig::instance()->m_StationCamKey_1;
m_pCoreCtrl->ISnapImage(QStringList() << camKey);
}
else if (nCamera == 2)
{
QString camKey = lpGlobalConfig::instance()->m_StationCamKey_2;
m_pCoreCtrl->ISnapImage(QStringList() << camKey);
}
else {
pStation->trigImage();
}*/
}
Q_SLOT void CMainWin::onTrigImage()
@ -1109,12 +1153,12 @@ Q_SLOT void CMainWin::onShowImage(int ID, QImage img)
}
}
//展示正在检测的型号名
Q_SLOT void CMainWin::onShowName(int ID, QString strName)
Q_SLOT void CMainWin::onShowName(QString ID, QString strName)
{
if (ID == 1) {
if (ID == lpGlobalConfig::instance()->m_StationSolution_1) {
ui.wf_lb_station_name_1->setText(strName);
}
else if (ID == 2) {
else if (ID == lpGlobalConfig::instance()->m_StationSolution_2) {
ui.wf_lb_station_name_2->setText(strName);
}
}
@ -1132,19 +1176,27 @@ Q_SLOT void CMainWin::onShowLog(int nID, QString strMsg)
Q_SLOT void CMainWin::onPopMenu(const QPoint& pt)
{
/*根据UI名判断是哪个工位需要设置相机*/
/* int nStationID = 1;
QString strCamKey;
QString strObj = sender()->objectName();
if ("wf_lb_image_show_1" == strObj)
nStationID = 1;
{
strCamKey = lpGlobalConfig::instance()->m_StationCamKey_1;
}
else if ("wf_lb_image_show_2" == strObj)
nStationID = 2;
{
strCamKey = lpGlobalConfig::instance()->m_StationCamKey_2;
}
IStation *pStation = m_pWfCtrl->IGetStationById(nStationID);
if (!pStation) {
//相机没配置,需要处理 添加相机
QStringList camkeys = m_pCoreCtrl->ICameraKeys();
if (!camkeys.contains(strCamKey) || strCamKey.isEmpty())
{
QMessageBox infobox(QMessageBox::Critical, tr("提示"), tr("请对该工位的相机进行绑定!"), QMessageBox::Yes, this);
infobox.setWindowIcon(QIcon(WINDOWS_ICON));
infobox.setButtonText(QMessageBox::Yes, tr("确认"));
infobox.exec();
return ;
}
QString strCamKey = pStation->stationKey();
QMenu menu;
QAction *pSetAction = menu.addAction(tr("相机属性配置"));
pSetAction->setObjectName("setAction");
@ -1167,7 +1219,6 @@ Q_SLOT void CMainWin::onPopMenu(const QPoint& pt)
m_camSetWid.show();
}
menu.clear();
*/
}
Q_SLOT void CMainWin::onSlotAddNewModel(QString strName)
@ -1199,11 +1250,11 @@ Q_SLOT void CMainWin::onSlotDelOldModel(QString strName)
}
}
void CMainWin::IEngineResult(QVariantMap vMap)
{
QImage srcImg = vMap.value("originImage").value<QImage>();
bool taskCali = vMap.value("taskCali").toBool();
QString solutionName = vMap.value("solutionName").toString();
if (taskCali == false)//模板未标定
{
// ui.main_value_Result->setText("该型号未标定");
@ -1243,18 +1294,29 @@ void CMainWin::IEngineResult(QVariantMap vMap)
// valueRlt.pixmap = QPixmap::fromImage(srcImg);
// valueRlt.resultType = 3;//识别出型号 但未标定
// onSaveValveResult(valueRlt);
int stationID = 0;
if (solutionName == lpGlobalConfig::instance()->m_StationSolution_1)
{
stationID = 1;
}
else if (solutionName == lpGlobalConfig::instance()->m_StationSolution_2)
{
stationID = 2;
}
onShowImage(stationID, srcImg);
}
else {
// QVariantMap algResult = vMap.value("AlgoResult").toMap();
//
// double dAngle = algResult.contains("angle") ? algResult.value("angle").toDouble() : 365;
// int errorType = algResult.contains("error") ? algResult.value("error").toInt() : 16;
// double matchScore = algResult.value("score").toDouble() * 100;
// QImage maskImg = algResult.value("image").value<QImage>();
// QString str = algResult.value("resultTip").toString();
// QPointF centerPoint = algResult.value("centerPoint").toPointF();
// QString taskName = vMap.value("taskName").toString();
// double taskTime = vMap.value("tasktime").toDouble();
QVariantMap algResult = vMap.value("AlgoResult").toMap();
double dAngle = algResult.contains("angle") ? algResult.value("angle").toDouble() : 365;
int errorType = algResult.contains("error") ? algResult.value("error").toInt() : 16;
double matchScore = algResult.value("score").toDouble() * 100;
QImage maskImg = algResult.value("image").value<QImage>();
QString str = algResult.value("resultTip").toString();
QPointF centerPoint = algResult.value("centerPoint").toPointF();
QString taskName = vMap.value("taskName").toString();
double taskTime = vMap.value("tasktime").toDouble();
// ui.main_label_angle->setText(QString("%1").arg(dAngle));
//
// ValueResult valueRlt;
@ -1297,6 +1359,16 @@ void CMainWin::IEngineResult(QVariantMap vMap)
// if (!maskImg.isNull())
// m_ImgViewer->setImg(maskImg);
// }
int stationID = 0;
if (solutionName == lpGlobalConfig::instance()->m_StationSolution_1)
{
stationID = 1;
}
else if (solutionName == lpGlobalConfig::instance()->m_StationSolution_2)
{
stationID = 2;
}
onShowImage(stationID, maskImg);
}
}

@ -93,8 +93,7 @@ private:
Q_SLOT void onLogInOut(QString strName, int level, int state);
Q_SLOT void onTestMode(int);
Q_SLOT void onShowImage(int ID, QImage img);
Q_SLOT void onShowName(int ID, QString strName);
Q_SLOT void onShowName(QString ID, QString strName);
Q_SLOT void onLanguageChange(QString strLanguage);//中英文切换功能
private:
Ui::CMainWin ui;

@ -319,6 +319,9 @@
<property name="text">
<string>工位配置</string>
</property>
<property name="toolTip">
<string>系统配置</string>
</property>
</action>
<action name="main_Login_action">
<property name="icon">

@ -1,13 +1,15 @@
#include "QDeviceMgrUI.h"
#include "lpSysConfig.h"
#include "QTipWidget.h"
#include "lpGlobalConfig.h"
#pragma execution_character_set("utf-8")
QDeviceMgrUI::QDeviceMgrUI(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
connect(ui.m_pbOK, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
}
QDeviceMgrUI::~QDeviceMgrUI()
@ -17,10 +19,22 @@ QDeviceMgrUI::~QDeviceMgrUI()
Q_SLOT void QDeviceMgrUI::onButtonClicked()
{
QString strObj = sender()->objectName();
if (strObj == "m_pbOK") {
getParam();
lpSysConfig::instance()->writeConfig();
ShowMessage(QObject::tr("²ÎÊýÒѱ£´æ"));
}
else if (strObj == "pushButton")
{
lpGlobalConfig::instance()->m_StationCamKey_1 = ui.comboBox_cam1->currentText();
lpGlobalConfig::instance()->m_StationCamKey_2 = ui.comboBox_cam2->currentText();
lpGlobalConfig::instance()->m_StationSolution_1 = ui.comboBox_solution1->currentText();
lpGlobalConfig::instance()->m_StationSolution_2 = ui.comboBox_solution2->currentText();
lpGlobalConfig::instance()->writeConfig();
}
}
void QDeviceMgrUI::setParam()
{
@ -56,3 +70,27 @@ void QDeviceMgrUI::showEvent(QShowEvent *event)
{
setParam();
}
void QDeviceMgrUI::setSystemConfig(QStringList camkeys, QStringList solutions)
{
ui.comboBox_cam1->clear();
ui.comboBox_cam2->clear();
ui.comboBox_solution1->clear();
ui.comboBox_solution2->clear();
ui.comboBox_cam1->addItem("");
ui.comboBox_cam2->addItem("");
ui.comboBox_solution1->addItem("");
ui.comboBox_solution2->addItem("");
ui.comboBox_cam1->addItems(camkeys);
ui.comboBox_cam2->addItems(camkeys);
ui.comboBox_solution1->addItems(solutions);
ui.comboBox_solution2->addItems(solutions);
ui.comboBox_cam1->setCurrentText(lpGlobalConfig::instance()->m_StationCamKey_1);
ui.comboBox_cam2->setCurrentText(lpGlobalConfig::instance()->m_StationCamKey_2);
ui.comboBox_solution1->setCurrentText(lpGlobalConfig::instance()->m_StationSolution_1);
ui.comboBox_solution2->setCurrentText(lpGlobalConfig::instance()->m_StationSolution_2);
}

@ -12,11 +12,13 @@ public:
QDeviceMgrUI(QWidget *parent = Q_NULLPTR);
~QDeviceMgrUI();
Q_SLOT void onButtonClicked();
void setParam();
void getParam();
virtual void showEvent(QShowEvent *event);
void setSystemConfig(QStringList camkeys, QStringList solutions);
private:
Ui::QDeviceMgrUI ui;
};

@ -6,187 +6,164 @@
<rect>
<x>0</x>
<y>0</y>
<width>470</width>
<height>280</height>
<width>438</width>
<height>387</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<pointsize>12</pointsize>
</font>
</property>
<property name="windowTitle">
<string>设备管理</string>
<string>系统配置</string>
</property>
<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>
<item row="0" column="0" colspan="2">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_6">
<item row="1" column="0">
<widget class="QGroupBox" name="groupBox_5">
<property name="title">
<string>通讯设备配置:</string>
<string>相机绑定</string>
</property>
<layout class="QGridLayout" name="gridLayout_11">
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_cam1"/>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="m_lineEdit_Baute">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
<widget class="QComboBox" name="comboBox_cam2"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>工位1</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_18">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<widget class="QLabel" name="label_4">
<property name="text">
<string>波特率:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<string>工位2</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_10">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
<widget class="QGroupBox" name="groupBox_4">
<property name="title">
<string>解决方案绑定:</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_solution1"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>串口名:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<string>工位1</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="m_lineEdit_ComName">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
<item row="1" column="1">
<widget class="QComboBox" name="comboBox_solution2"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>工位2</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
<item row="2" column="0">
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>应用</string>
</property>
</spacer>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_pbOK">
<property name="minimumSize">
<size>
<width>100</width>
<height>30</height>
</size>
</property>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>确定并应用</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>图像保存</string>
<string>通讯设备配置:</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QCheckBox" name="checkBox_SaveRltImg_st1">
<layout class="QGridLayout" name="gridLayout_11">
<item row="1" column="1">
<widget class="QLineEdit" name="m_lineEdit_Baute">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>保存工位1结果图</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox_SaveRltImg_st2">
<widget class="QLabel" name="label_18">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>保存工位2结果图</string>
<string>波特率:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="checkBox_SaveSrcImg_st1">
<item row="0" column="0">
<widget class="QLabel" name="label_10">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>保存工位1原图</string>
<string>串口名:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="checkBox_SaveSrcImg_st2">
<item row="0" column="1">
<widget class="QLineEdit" name="m_lineEdit_ComName">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>保存工位2原图</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="1" rowspan="2">
<item row="0" column="1">
<widget class="QGroupBox" name="groupBox_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
@ -317,6 +294,85 @@
</layout>
</widget>
</item>
<item row="1" column="0" colspan="2">
<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>12</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>12</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>12</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>12</pointsize>
</font>
</property>
<property name="text">
<string>保存工位2原图</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QPushButton" name="m_pbOK">
<property name="minimumSize">
<size>
<width>100</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>确定并应用</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>

@ -7,6 +7,7 @@
#include "QAddModeUI.h"
#include "IStation.h"
#include "IWfCtrl.h"
#include "lpGlobalConfig.h"
#define LP_WF_PLC_MAX_INDEX 1000
#pragma execution_character_set("utf-8")
QModelMangerUI::QModelMangerUI(QWidget *parent)
@ -28,17 +29,28 @@ Q_SLOT void QModelMangerUI::onButtonClicked()
{
QString strObj = sender()->objectName();
if ("wf_model_select_button" == strObj) {
// if (!m_pCtrl->IOnlineMode()) {
// IStation *pStation = getStation();
// if (pStation) {
// QString strModel = pStation->currentSelectModel();
// if (!strModel.isEmpty()) {
// m_pCtrl->ISelModel(currentTab(), strModel);
// ui.mLblModelState->setText(tr("current %1 OK!").arg(strModel));
// m_pCtrl->ISetModifyModel(true);
// }
// }
// }
if (!m_pCtrl->IOnlineMode()) {
QString nStaionID = currentTab();
IStation *pStation = m_pCtrl->IGetStationByKey(nStaionID);
if (pStation) {
QString strModel = pStation->currentSelectModel();
if (!strModel.isEmpty()) {
m_pCtrl->ISelModel(currentTab(), strModel);
ui.mLblModelState->setText(tr("current %1 OK!").arg(strModel));
m_pCtrl->ISetModifyModel(true);
if (nStaionID == lpGlobalConfig::instance()->m_StationSolution_1)
{
lpGlobalConfig::instance()->m_StationRunModel_1 = strModel;
}
else if (nStaionID == lpGlobalConfig::instance()->m_StationSolution_2)
{
lpGlobalConfig::instance()->m_StationRunModel_2 = strModel;
}
lpGlobalConfig::instance()->writeConfig();
}
}
}
}
else if ("wf_model_add_button" == strObj) {

@ -1,8 +1,14 @@
#include "lpGlobalConfig.h"
#include <QApplication>
#include <QFile>
#include <QJsonObject>
#include <QJsonDocument>
#include <QJsonArray>
lpGlobalConfig::lpGlobalConfig(QObject *parent)
: QObject(parent)
{
m_rootPath = QApplication::applicationDirPath();
}
lpGlobalConfig::~lpGlobalConfig()
@ -11,10 +17,47 @@ lpGlobalConfig::~lpGlobalConfig()
void lpGlobalConfig::readConfig()
{
QString strPath = m_rootPath + "/user/globalConfig.json";
QFile file(strPath);
if (true == file.open(QIODevice::ReadOnly))
{
QByteArray readData = file.readAll();
QJsonObject rootObj = QJsonDocument::fromJson(readData).object();
if (!rootObj.isEmpty())
{
QString strCam1 = rootObj.value("station_camkey_1").toString();
QString strCam2 = rootObj.value("station_camkey_2").toString();
QString strSolution1 = rootObj.value("station_solution_1").toString();
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_StationCamKey_1 = strCam1;
m_StationCamKey_2 = strCam2;
m_StationSolution_1 = strSolution1;
m_StationSolution_2 = strSolution2;
m_StationRunModel_1 = strRunModel1;
m_StationRunModel_2 = strRunModel2;
}
}
file.close();
}
void lpGlobalConfig::writeConfig()
{
QString strPath = m_rootPath + "/user/globalConfig.json";
QFile file(strPath);
if (true == file.open(QIODevice::WriteOnly))
{
QJsonObject rootObj;
rootObj.insert("station_camkey_1", m_StationCamKey_1);
rootObj.insert("station_camkey_2", m_StationCamKey_2);
rootObj.insert("station_solution_1", m_StationSolution_1);
rootObj.insert("station_solution_2", m_StationSolution_2);
rootObj.insert("station_runModel_1", m_StationRunModel_1);
rootObj.insert("station_runModel_2", m_StationRunModel_2);
QJsonDocument doc(rootObj);
QByteArray writeData = doc.toJson();
file.write(writeData);
}
file.close();
}

@ -16,8 +16,15 @@ public:
void readConfig();
void writeConfig();
QMap<QString, QString> m_CamKeySolution;
QMap<QString, QString> m_curRunModel;
QString m_StationCamKey_1;//工位相机绑定
QString m_StationCamKey_2;//工位相机绑定
QString m_StationSolution_1;//工位solution绑定
QString m_StationSolution_2;//工位solution绑定
QString m_StationRunModel_1;
QString m_StationRunModel_2;
QString m_rootPath;
};
#endif

Loading…
Cancel
Save