提交人:方小海

提交时间:2026/06/09
提交母的:创建解键合项目,基本已经完成
main
方小海 2 months ago
commit c3a96b249b

Binary file not shown.

Binary file not shown.

@ -0,0 +1,112 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Debonding", "Debonding\Debonding.vcxproj", "{88BE484F-5799-44CC-94FE-38DAA8B96C5B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MotionCtrlCard", "..\..\third\MotionCtrlCard\MotionCtrlCard.vcxproj", "{4C0929FF-1D23-43AB-9801-DEA7E126B8E0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JELManager", "..\..\third\Jel\JELManager.vcxproj", "{6E8A1417-40C7-456F-81C2-7BC0381411AF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JelRobotManage", "..\..\third\JelRobotManage\JelRobotManage.vcxproj", "{E08930DD-8631-4534-8E0D-C0D83B4CD87C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TransformerManage", "..\..\third\TransformerManage\TransformerManage.vcxproj", "{F8EFCFE2-FDBB-4118-AC3D-EDCAADF88CD5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DebondingAlgo", "DebondingAlgo\DebondingAlgo.vcxproj", "{9B488268-2CD3-459F-8F61-D1653E1E7988}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XizManage", "..\..\third\XizManage\XizManage.vcxproj", "{12667B8C-0B8F-49CF-83A5-893E777E0DE8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LayserMirror", "..\..\third\Laser\LayserMirror.vcxproj", "{337E3B72-C037-4BC6-9DB9-DB1010FF7056}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CleanMachineManage", "..\..\third\CleanMachineManage\CleanMachineManage.vcxproj", "{94108659-D1D3-41A0-B2BB-A222DA4E4807}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GazAlignmanage", "..\..\third\GazAlignmanage\GazAlignmanage.vcxproj", "{E78DFFEA-1F89-40DE-8AFF-396E1A9B23C4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QTLogger", "..\..\third\QTLogger\QTLogger.vcxproj", "{E0A83572-7991-4B9F-8C53-A52D0F5ABEBE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{88BE484F-5799-44CC-94FE-38DAA8B96C5B}.Debug|x64.ActiveCfg = Debug|Win32
{88BE484F-5799-44CC-94FE-38DAA8B96C5B}.Debug|x86.ActiveCfg = Debug|Win32
{88BE484F-5799-44CC-94FE-38DAA8B96C5B}.Debug|x86.Build.0 = Debug|Win32
{88BE484F-5799-44CC-94FE-38DAA8B96C5B}.Release|x64.ActiveCfg = Release|Win32
{88BE484F-5799-44CC-94FE-38DAA8B96C5B}.Release|x86.ActiveCfg = Release|Win32
{88BE484F-5799-44CC-94FE-38DAA8B96C5B}.Release|x86.Build.0 = Release|Win32
{4C0929FF-1D23-43AB-9801-DEA7E126B8E0}.Debug|x64.ActiveCfg = Debug|x64
{4C0929FF-1D23-43AB-9801-DEA7E126B8E0}.Debug|x64.Build.0 = Debug|x64
{4C0929FF-1D23-43AB-9801-DEA7E126B8E0}.Debug|x86.ActiveCfg = Debug|Win32
{4C0929FF-1D23-43AB-9801-DEA7E126B8E0}.Debug|x86.Build.0 = Debug|Win32
{4C0929FF-1D23-43AB-9801-DEA7E126B8E0}.Release|x64.ActiveCfg = Release|x64
{4C0929FF-1D23-43AB-9801-DEA7E126B8E0}.Release|x64.Build.0 = Release|x64
{4C0929FF-1D23-43AB-9801-DEA7E126B8E0}.Release|x86.ActiveCfg = Release|Win32
{4C0929FF-1D23-43AB-9801-DEA7E126B8E0}.Release|x86.Build.0 = Release|Win32
{6E8A1417-40C7-456F-81C2-7BC0381411AF}.Debug|x64.ActiveCfg = Debug|x64
{6E8A1417-40C7-456F-81C2-7BC0381411AF}.Debug|x64.Build.0 = Debug|x64
{6E8A1417-40C7-456F-81C2-7BC0381411AF}.Debug|x86.ActiveCfg = Debug|Win32
{6E8A1417-40C7-456F-81C2-7BC0381411AF}.Debug|x86.Build.0 = Debug|Win32
{6E8A1417-40C7-456F-81C2-7BC0381411AF}.Release|x64.ActiveCfg = Release|x64
{6E8A1417-40C7-456F-81C2-7BC0381411AF}.Release|x64.Build.0 = Release|x64
{6E8A1417-40C7-456F-81C2-7BC0381411AF}.Release|x86.ActiveCfg = Release|Win32
{6E8A1417-40C7-456F-81C2-7BC0381411AF}.Release|x86.Build.0 = Release|Win32
{E08930DD-8631-4534-8E0D-C0D83B4CD87C}.Debug|x64.ActiveCfg = Debug|Win32
{E08930DD-8631-4534-8E0D-C0D83B4CD87C}.Debug|x86.ActiveCfg = Debug|Win32
{E08930DD-8631-4534-8E0D-C0D83B4CD87C}.Debug|x86.Build.0 = Debug|Win32
{E08930DD-8631-4534-8E0D-C0D83B4CD87C}.Release|x64.ActiveCfg = Release|Win32
{E08930DD-8631-4534-8E0D-C0D83B4CD87C}.Release|x86.ActiveCfg = Release|Win32
{E08930DD-8631-4534-8E0D-C0D83B4CD87C}.Release|x86.Build.0 = Release|Win32
{F8EFCFE2-FDBB-4118-AC3D-EDCAADF88CD5}.Debug|x64.ActiveCfg = Debug|Win32
{F8EFCFE2-FDBB-4118-AC3D-EDCAADF88CD5}.Debug|x86.ActiveCfg = Debug|Win32
{F8EFCFE2-FDBB-4118-AC3D-EDCAADF88CD5}.Debug|x86.Build.0 = Debug|Win32
{F8EFCFE2-FDBB-4118-AC3D-EDCAADF88CD5}.Release|x64.ActiveCfg = Release|Win32
{F8EFCFE2-FDBB-4118-AC3D-EDCAADF88CD5}.Release|x86.ActiveCfg = Release|Win32
{F8EFCFE2-FDBB-4118-AC3D-EDCAADF88CD5}.Release|x86.Build.0 = Release|Win32
{9B488268-2CD3-459F-8F61-D1653E1E7988}.Debug|x64.ActiveCfg = Debug|Win32
{9B488268-2CD3-459F-8F61-D1653E1E7988}.Debug|x86.ActiveCfg = Debug|Win32
{9B488268-2CD3-459F-8F61-D1653E1E7988}.Debug|x86.Build.0 = Debug|Win32
{9B488268-2CD3-459F-8F61-D1653E1E7988}.Release|x64.ActiveCfg = Release|Win32
{9B488268-2CD3-459F-8F61-D1653E1E7988}.Release|x86.ActiveCfg = Release|Win32
{9B488268-2CD3-459F-8F61-D1653E1E7988}.Release|x86.Build.0 = Release|Win32
{12667B8C-0B8F-49CF-83A5-893E777E0DE8}.Debug|x64.ActiveCfg = Debug|Win32
{12667B8C-0B8F-49CF-83A5-893E777E0DE8}.Debug|x86.ActiveCfg = Debug|Win32
{12667B8C-0B8F-49CF-83A5-893E777E0DE8}.Debug|x86.Build.0 = Debug|Win32
{12667B8C-0B8F-49CF-83A5-893E777E0DE8}.Release|x64.ActiveCfg = Release|Win32
{12667B8C-0B8F-49CF-83A5-893E777E0DE8}.Release|x86.ActiveCfg = Release|Win32
{12667B8C-0B8F-49CF-83A5-893E777E0DE8}.Release|x86.Build.0 = Release|Win32
{337E3B72-C037-4BC6-9DB9-DB1010FF7056}.Debug|x64.ActiveCfg = Debug|x64
{337E3B72-C037-4BC6-9DB9-DB1010FF7056}.Debug|x64.Build.0 = Debug|x64
{337E3B72-C037-4BC6-9DB9-DB1010FF7056}.Debug|x86.ActiveCfg = Debug|Win32
{337E3B72-C037-4BC6-9DB9-DB1010FF7056}.Debug|x86.Build.0 = Debug|Win32
{337E3B72-C037-4BC6-9DB9-DB1010FF7056}.Release|x64.ActiveCfg = Release|x64
{337E3B72-C037-4BC6-9DB9-DB1010FF7056}.Release|x64.Build.0 = Release|x64
{337E3B72-C037-4BC6-9DB9-DB1010FF7056}.Release|x86.ActiveCfg = Release|Win32
{337E3B72-C037-4BC6-9DB9-DB1010FF7056}.Release|x86.Build.0 = Release|Win32
{94108659-D1D3-41A0-B2BB-A222DA4E4807}.Debug|x64.ActiveCfg = Debug|Win32
{94108659-D1D3-41A0-B2BB-A222DA4E4807}.Debug|x86.ActiveCfg = Debug|Win32
{94108659-D1D3-41A0-B2BB-A222DA4E4807}.Debug|x86.Build.0 = Debug|Win32
{94108659-D1D3-41A0-B2BB-A222DA4E4807}.Release|x64.ActiveCfg = Release|Win32
{94108659-D1D3-41A0-B2BB-A222DA4E4807}.Release|x86.ActiveCfg = Release|Win32
{94108659-D1D3-41A0-B2BB-A222DA4E4807}.Release|x86.Build.0 = Release|Win32
{E78DFFEA-1F89-40DE-8AFF-396E1A9B23C4}.Debug|x64.ActiveCfg = Debug|Win32
{E78DFFEA-1F89-40DE-8AFF-396E1A9B23C4}.Debug|x86.ActiveCfg = Debug|Win32
{E78DFFEA-1F89-40DE-8AFF-396E1A9B23C4}.Debug|x86.Build.0 = Debug|Win32
{E78DFFEA-1F89-40DE-8AFF-396E1A9B23C4}.Release|x64.ActiveCfg = Release|Win32
{E78DFFEA-1F89-40DE-8AFF-396E1A9B23C4}.Release|x86.ActiveCfg = Release|Win32
{E78DFFEA-1F89-40DE-8AFF-396E1A9B23C4}.Release|x86.Build.0 = Release|Win32
{E0A83572-7991-4B9F-8C53-A52D0F5ABEBE}.Debug|x64.ActiveCfg = Debug|Win32
{E0A83572-7991-4B9F-8C53-A52D0F5ABEBE}.Debug|x86.ActiveCfg = Debug|Win32
{E0A83572-7991-4B9F-8C53-A52D0F5ABEBE}.Debug|x86.Build.0 = Debug|Win32
{E0A83572-7991-4B9F-8C53-A52D0F5ABEBE}.Release|x64.ActiveCfg = Release|Win32
{E0A83572-7991-4B9F-8C53-A52D0F5ABEBE}.Release|x86.ActiveCfg = Release|Win32
{E0A83572-7991-4B9F-8C53-A52D0F5ABEBE}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

@ -0,0 +1,92 @@
#include "CassMappingManage.h"
CassMappingManage::CassMappingManage(QObject *parent)
: QObject(parent)
{
}
CassMappingManage::~CassMappingManage()
{
}
JudgeCassMappingType CassMappingManage::ReadLeftCassStatus()
{
bool isRing = false;
unsigned char ring1Flag = GlobalObjCenter::GetInstance()->m_gugaoCardObj.m_motorDriver->ReadDi(MODULE_0, SENSOR_CASS1_RING1);
unsigned char ring2Flag = GlobalObjCenter::GetInstance()->m_gugaoCardObj.m_motorDriver->ReadDi(MODULE_0, SENSOR_CASS1_RING2);
if (ring1Flag == 1 && ring2Flag == 1)
{
isRing = true;
}
bool isWafer = false;
unsigned char wafer1Flag = GlobalObjCenter::GetInstance()->m_gugaoCardObj.m_motorDriver->ReadDi(MODULE_0, SENSOR_CASS1_WAFER1);
unsigned char wafer2Flag = GlobalObjCenter::GetInstance()->m_gugaoCardObj.m_motorDriver->ReadDi(MODULE_0, SENSOR_CASS1_WAFER2);
unsigned char wafer3Flag = GlobalObjCenter::GetInstance()->m_gugaoCardObj.m_motorDriver->ReadDi(MODULE_0, SENSOR_CASS1_WAFER3);
if (wafer1Flag == 1 && wafer2Flag == 1 && wafer3Flag == 1)
{
isWafer = true;
}
if (isRing && isWafer)
{
return CASS_MAPPING_TYPE_ERROR;
}
if (isRing)
{
return CASS_MAPPING_TYPE_RING;
}
if (isWafer)
{
return CASS_MAPPING_TYPE_WAFER;
}
return CASS_MAPPING_TYPE_NONE;
}
bool CassMappingManage::ReadCassMappingData(int loadportId, std::vector<char>& MappingData)
{
return GlobalObjCenter::GetInstance()->m_jelManageObj.MappingCass(loadportId, MappingData);
}
JudgeCassMappingType CassMappingManage::JudgeAllCassStatus()
{
JudgeCassMappingType cass1Status = GetOneCassStatus(MODULE_0, SENSOR_CASS1_RING1, SENSOR_CASS1_RING2,
SENSOR_CASS1_WAFER1, SENSOR_CASS1_WAFER2, SENSOR_CASS1_WAFER3);
JudgeCassMappingType cass2Status = GetOneCassStatus(MODULE_0, SENSOR_CASS3_RING1, SENSOR_CASS3_RING2,
SENSOR_CASS3_WAFER1, SENSOR_CASS3_WAFER2, SENSOR_CASS3_WAFER3);
if (cass1Status == CASS_MAPPING_TYPE_RING && cass2Status == CASS_MAPPING_TYPE_RING)
{
return CASS_MAPPING_TYPE_RING;
}
if (cass1Status == CASS_MAPPING_TYPE_WAFER && cass2Status == CASS_MAPPING_TYPE_WAFER)
{
return CASS_MAPPING_TYPE_WAFER;
}
return CASS_MAPPING_TYPE_ERROR;
}
JudgeCassMappingType CassMappingManage::GetOneCassStatus(int GugaoModuleId, int ringSensor1, int ringSensor2, int waferSensor1, int waferSensor2, int waferSensor3)
{
bool isRing = false;
if (GlobalObjCenter::GetInstance()->m_gugaoCardObj.m_motorDriver == nullptr)
{
return CASS_MAPPING_TYPE_ERROR;
}
unsigned char ring1Flag = GlobalObjCenter::GetInstance()->m_gugaoCardObj.m_motorDriver->ReadDi(GugaoModuleId, ringSensor1);
unsigned char ring2Flag = GlobalObjCenter::GetInstance()->m_gugaoCardObj.m_motorDriver->ReadDi(GugaoModuleId, ringSensor2);
if (ring1Flag == 1 && ring2Flag == 1)
{
return CASS_MAPPING_TYPE_RING;
}
bool isWafer = false;
unsigned char wafer1Flag = GlobalObjCenter::GetInstance()->m_gugaoCardObj.m_motorDriver->ReadDi(GugaoModuleId, waferSensor1);
unsigned char wafer2Flag = GlobalObjCenter::GetInstance()->m_gugaoCardObj.m_motorDriver->ReadDi(GugaoModuleId, waferSensor2);
unsigned char wafer3Flag = GlobalObjCenter::GetInstance()->m_gugaoCardObj.m_motorDriver->ReadDi(GugaoModuleId, waferSensor3);
if (wafer1Flag == 1 && wafer2Flag == 1 && wafer3Flag == 1)
{
return CASS_MAPPING_TYPE_WAFER;
}
return CASS_MAPPING_TYPE_ERROR;
}

@ -0,0 +1,22 @@
#pragma once
#include <QObject>
#include "GlobalTypeDefine.h"
#include "GlobalObjCenter.h"
class CassMappingManage : public QObject
{
Q_OBJECT
public:
CassMappingManage(QObject *parent = nullptr);
~CassMappingManage();
public:
JudgeCassMappingType ReadLeftCassStatus();
bool ReadCassMappingData(int loadportId, std::vector<char>& MappingData);
JudgeCassMappingType JudgeAllCassStatus();
private:
JudgeCassMappingType GetOneCassStatus(int GugaoModuleId, int ringSensor1, int ringSensor2, int waferSensor1, int waferSensor2, int waferSensor3);
};

@ -0,0 +1,114 @@
#include "CassMappingUI.h"
CassMappingUI::CassMappingUI(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
connect(ui.comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(slot_recipeChange(int)));
connect(ui.pushButton_cassMapping, SIGNAL(clicked()), this, SLOT(slot_cassMapping()));
m_allLayerBtnVec = {
ui.pushButton_1, ui.pushButton_2, ui.pushButton_3, ui.pushButton_4, ui.pushButton_5,
ui.pushButton_6, ui.pushButton_7, ui.pushButton_8, ui.pushButton_9, ui.pushButton_10,
ui.pushButton_11, ui.pushButton_12, ui.pushButton_13, ui.pushButton_14, ui.pushButton_15,
ui.pushButton_16, ui.pushButton_17, ui.pushButton_18, ui.pushButton_19, ui.pushButton_20,
ui.pushButton_21, ui.pushButton_22, ui.pushButton_23, ui.pushButton_24, ui.pushButton_25,};
for (auto& iter : m_allLayerBtnVec) {
connect(iter, SIGNAL(clicked()), this, SLOT(slot_selectCurLayer()));
}
}
CassMappingUI::~CassMappingUI()
{
}
void CassMappingUI::InitCassMappingUI()
{
GlobalDataCenter::GetInstance()->m_oneStepCurLayer = -1;
GlobalDataCenter::GetInstance()->m_oneStepCassMappingType = CASS_MAPPING_TYPE_NONE;
m_allRecipePPIDList.clear();
GlobalDataCenter::GetInstance()->m_configFlineObj.ReadAllRecipe();
for (auto& iter : GlobalDataCenter::GetInstance()->m_configFlineObj.m_allRecipe)
{
m_allRecipePPIDList << iter.m_PPID;
}
m_recipeModel.setStringList(m_allRecipePPIDList);
ui.comboBox->setModel(&m_recipeModel);
ui.comboBox->setCurrentIndex(0);
for (auto& iter : m_allLayerBtnVec) {
iter->setEnabled(false);
iter->setStyleSheet("QPushButton { background-color: rgb(168, 221, 255);}");
}
JudgeCassMappingType cassStatus = m_cassMappingManagerObj.JudgeAllCassStatus();
GlobalDataCenter::GetInstance()->m_oneStepCassMappingType = cassStatus;
}
void CassMappingUI::slot_cassMapping()
{
//TODO:正式运行时放开
/*if (!(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType == CASS_MAPPING_TYPE_RING ||
GlobalDataCenter::GetInstance()->m_oneStepCassMappingType == CASS_MAPPING_TYPE_WAFER))
{
GlobalFuncCenter::GetInstance()->ShowMyMessageBox(QString::fromLocal8Bit("料盒异常,请查看"));
return;
}*/
std::vector<char> MappingData;
bool isOk = m_cassMappingManagerObj.ReadCassMappingData(POS_CASS_LEFT, MappingData);
if (!isOk)
{
GlobalFuncCenter::GetInstance()->ShowMyMessageBox(QString::fromLocal8Bit("料盒扫描异常,请查看"));
return;
}
if (MappingData.size() <= 25)
{
for (int i = 0; i < MappingData.size(); i++)
{
if (MappingData[i] == 1)
{
m_allLayerBtnVec[i]->setEnabled(true);
}
else
{
m_allLayerBtnVec[i]->setEnabled(false);
}
}
}
}
void CassMappingUI::slot_selectCurLayer()
{
QPushButton* curClickButton = qobject_cast<QPushButton*>(sender());
GlobalDataCenter::GetInstance()->m_oneStepCurLayer = curClickButton->text().toInt();
for (auto& iter : m_allLayerBtnVec)
{
if (iter->text() == curClickButton->text())
{
iter->setStyleSheet("QPushButton { background-color: rgb(200, 0, 0);}");
emit signal_sendCurLayer(curClickButton->text().toInt());
}
else
{
iter->setStyleSheet("QPushButton { background-color: rgb(168, 221, 255);}");
}
}
}
void CassMappingUI::slot_recipeChange(int index)
{
QString ppid = ui.comboBox->currentText();
for (auto& iter : GlobalDataCenter::GetInstance()->m_configFlineObj.m_allRecipe)
{
if (iter.m_PPID == ppid)
{
GlobalDataCenter::GetInstance()->m_oneStepCurRecipe = iter;
emit signal_sendCurRecipePPID(ppid);;
}
}
}

@ -0,0 +1,40 @@
#pragma once
#include <QWidget>
#include "ui_CassMappingUI.h"
#include <QStringList>
#include <QStringListModel>
#include "GlobalDataCenter.h"
#include "GlobalObjCenter.h"
#include "GlobalFuncCenter.h"
#include "CassMappingManage.h"
class CassMappingUI : public QWidget
{
Q_OBJECT
public:
CassMappingUI(QWidget *parent = Q_NULLPTR);
~CassMappingUI();
signals:
void signal_sendCurRecipePPID(QString ppid);
void signal_sendCurLayer(int curlayer);
public slots:
void slot_recipeChange(int index);
void slot_cassMapping();
void slot_selectCurLayer();
public:
void InitCassMappingUI();
private:
Ui::CassMappingUI ui;
QStringList m_allRecipePPIDList;
QStringListModel m_recipeModel;
std::vector<QPushButton*> m_allLayerBtnVec;
CassMappingManage m_cassMappingManagerObj;
};

@ -0,0 +1,639 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CassMappingUI</class>
<widget class="QWidget" name="CassMappingUI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1627</width>
<height>1048</height>
</rect>
</property>
<property name="windowTitle">
<string>CassMappingUI</string>
</property>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>210</x>
<y>90</y>
<width>1401</width>
<height>761</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3" stretch="2,8">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_loadport.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>20</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>请选择Recipe</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="1">
<item>
<widget class="QPushButton" name="pushButton_cassMapping">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>扫描</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<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>
<item>
<layout class="QGridLayout" name="gridLayout">
<property name="spacing">
<number>15</number>
</property>
<item row="0" column="3">
<widget class="QPushButton" name="pushButton_4">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>4</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="pushButton_2">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>2</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="pushButton_3">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>3</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="pushButton_1">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>1</string>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QPushButton" name="pushButton_5">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>5</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="pushButton_6">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>6</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="pushButton_8">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>8</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="pushButton_7">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>7</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="pushButton_9">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>9</string>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QPushButton" name="pushButton_10">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>10</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QPushButton" name="pushButton_11">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>11</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="pushButton_13">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>13</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="pushButton_12">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>12</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QPushButton" name="pushButton_14">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>14</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QPushButton" name="pushButton_16">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>16</string>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QPushButton" name="pushButton_15">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>15</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="pushButton_17">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>17</string>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QPushButton" name="pushButton_20">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>20</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QPushButton" name="pushButton_21">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>21</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="pushButton_18">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>18</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QPushButton" name="pushButton_19">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>19</string>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QPushButton" name="pushButton_24">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>24</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QPushButton" name="pushButton_25">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>25</string>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QPushButton" name="pushButton_23">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>23</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QPushButton" name="pushButton_22">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>22</string>
</property>
</widget>
</item>
<item row="5" column="2">
<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>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="Debonding.qrc"/>
</resources>
<connections/>
</ui>

@ -0,0 +1,78 @@
#include "CassToPlatFormThread.h"
#include "GlobalDataCenter.h"
CassToPlatFormThread::CassToPlatFormThread(QObject *parent)
: QObject(parent)
{
}
CassToPlatFormThread::~CassToPlatFormThread()
{
}
void CassToPlatFormThread::SetcassToPlatFormFlag(bool flag)
{
m_CassToPTMutex.lock();
m_cassToPlatFormThreadStartRun = flag;
m_CassToPTMutex.unlock();
}
bool CassToPlatFormThread::ReadCassToPlatFormFlag()
{
bool flag = false;
m_CassToPTMutex.lock();
flag = m_cassToPlatFormThreadStartRun;
m_CassToPTMutex.unlock();
return flag;
}
void CassToPlatFormThread::InitCassToPlatFormThread()
{
m_cassToPlatFormThread = std::thread(&CassToPlatFormThread::ThreadFunc_CassToPlatForm, this);
}
void CassToPlatFormThread::StartRunCassToPlatFormThread()
{
if (!GlobalDataCenter::GetInstance()->JudgeCassWaferIsAllWorkEnd())
{
GlobalDataCenter::GetInstance()->UpdateCassWaferThreadStatus(WAFER_THREAD_STATUS_NONE, STATUS_CASS_TO_DEBONDING_PT);
GlobalDataCenter::GetInstance()->SetJelIsBusy(true);
SetcassToPlatFormFlag(true);
}
}
void CassToPlatFormThread::ThreadFunc_CassToPlatForm()
{
while (m_cassToPlatFormThreadIsRun)
{
while (!ReadCassToPlatFormFlag())
{
std::this_thread::sleep_for(std::chrono::seconds(1));
}
std::cout << "----start CassToPlatForm" << std::endl;
WaferAttr waferObj = GlobalDataCenter::GetInstance()->GetCurThreadStatusWaferAttr(STATUS_CASS_TO_DEBONDING_PT);
bool isSuccess = m_cassToPtObj.OneLoadingCassToPT(waferObj.cassType, waferObj.slot);
if (!isSuccess)
{
GlobalDataCenter::GetInstance()->m_IsContinueExecuteCommand = false;
return;
}
//ÑÓʱģÄâÔËÐÐ
//std::this_thread::sleep_for(std::chrono::seconds(9));
SetcassToPlatFormFlag(false);
GlobalDataCenter::GetInstance()->SetJelIsBusy(false);
emit signal_sendCassToPlatFormEnd();
std::cout << "----end CassToPlatForm" << std::endl;
}
}

@ -0,0 +1,46 @@
#pragma once
#include <QObject>
#include <thread>
#include <QMutex>
#include "CassToPtManager.h"
class CassToPlatFormThread : public QObject
{
Q_OBJECT
public:
CassToPlatFormThread(QObject *parent = NULL);
~CassToPlatFormThread();
bool CassToPlatFormThreadIsRun() { return m_cassToPlatFormThreadIsRun; }
void CassToPlatFormThreadIsRun(bool val) { m_cassToPlatFormThreadIsRun = val; }
void SetcassToPlatFormFlag(bool flag);
bool ReadCassToPlatFormFlag();
signals:
void signal_sendCassToPlatFormEnd();
public:
//初始化从料盒到平台线程
void InitCassToPlatFormThread();
//开始运行料盒到平台线程
void StartRunCassToPlatFormThread();
public:
void ThreadFunc_CassToPlatForm();
private:
std::thread m_cassToPlatFormThread;
//线程是否结束
bool m_cassToPlatFormThreadIsRun = true;
//开始运行线程标志
bool m_cassToPlatFormThreadStartRun = false;
QMutex m_CassToPTMutex;
CassToPtManager m_cassToPtObj;
};

@ -0,0 +1,104 @@
#include "CassToPtManager.h"
#include "OneStepCommonFunc.h"
CassToPtManager::CassToPtManager(QObject *parent)
: QObject(parent)
{
}
CassToPtManager::~CassToPtManager()
{
}
bool CassToPtManager::OneLoadingCassToPT(JudgeCassMappingType cassType, int cassSlot)
{
DevicePosDefine cassPos = GlobalFuncCenter::GetInstance()->GetAlignCassType(cassType);
std::vector<RunActionCommand> CassToPTCommandVec;
RunActionCommand commandObj;
commandObj.m_commandType = RunActionCommand::COMMAND_CASS_TO_JEL;
commandObj.m_cassType = cassType;
commandObj.m_cassIndex = POS_CASS_LEFT;
commandObj.m_cassSlot = cassSlot;
CassToPTCommandVec.push_back(commandObj);
commandObj.m_commandType = RunActionCommand::COMMAND_JEL_TO_ALIGN;
commandObj.m_cassType = cassType;
commandObj.m_cassIndex = cassPos;
commandObj.m_cassSlot = cassSlot;
CassToPTCommandVec.push_back(commandObj);
commandObj.m_commandType = RunActionCommand::COMMAND_DO_ALIGN;
CassToPTCommandVec.push_back(commandObj);
commandObj.m_commandType = RunActionCommand::COMMAND_ALIGN_TO_JEL;
commandObj.m_cassType = cassType;
commandObj.m_cassIndex = cassPos;
commandObj.m_cassSlot = cassSlot;
CassToPTCommandVec.push_back(commandObj);
commandObj.m_commandType = RunActionCommand::COMMAND_PT_MOVE_TO_LOADPOS;
commandObj.m_cassType = cassType;
CassToPTCommandVec.push_back(commandObj);
commandObj.m_commandType = RunActionCommand::COMMAND_JEL_TO_PT;
commandObj.m_cassType = cassType;
commandObj.m_cassIndex = POS_PLATFORM;
commandObj.m_cassSlot = cassSlot;
CassToPTCommandVec.push_back(commandObj);
commandObj.m_commandType = RunActionCommand::COMMAND_PT_PREPARE;
CassToPTCommandVec.push_back(commandObj);
for (auto iter : CassToPTCommandVec)
{
if (GlobalDataCenter::GetInstance()->m_IsContinueExecuteCommand)
{
bool isSuccess = iter.ExecuteCommand();
if (!isSuccess)
{
return false;
}
}
else
{
return false;
}
}
return true;
}
bool CassToPtManager::LoadingCassToJel(JudgeCassMappingType cassType, int cassIndex, int cassSlot)
{
RunActionCommand commandObj;
commandObj.m_commandType = RunActionCommand::COMMAND_CASS_TO_JEL;
commandObj.m_cassType = cassType;
commandObj.m_cassIndex = POS_CASS_LEFT;
commandObj.m_cassSlot = cassSlot;
return commandObj.ExecuteCommand();
}
bool CassToPtManager::LoadingPTMoveToLoadPos(JudgeCassMappingType cassType)
{
RunActionCommand commandObj;
commandObj.m_commandType = RunActionCommand::COMMAND_PT_MOVE_TO_LOADPOS;
return commandObj.ExecuteCommand();
}
bool CassToPtManager::LoadingJelToPT(JudgeCassMappingType cassType, int cassIndex, int cassSlot)
{
RunActionCommand commandObj;
commandObj.m_commandType = RunActionCommand::COMMAND_JEL_TO_PT;
commandObj.m_cassType = cassType;
commandObj.m_cassIndex = POS_PLATFORM;
commandObj.m_cassSlot = cassSlot;
return commandObj.ExecuteCommand();
}
bool CassToPtManager::LoadingPTPrepare()
{
RunActionCommand commandObj;
commandObj.m_commandType = RunActionCommand::COMMAND_PT_PREPARE;
return commandObj.ExecuteCommand();
}

@ -0,0 +1,24 @@
#pragma once
#include <QObject>
#include "GlobalObjCenter.h"
#include "GlobalFuncCenter.h"
class CassToPtManager : public QObject
{
Q_OBJECT
public:
CassToPtManager(QObject *parent = nullptr);
~CassToPtManager();
public:
//一键上料,料盒到平台
bool OneLoadingCassToPT(JudgeCassMappingType cassType, int cassSlot);
//分步执行一键上料
bool LoadingCassToJel(JudgeCassMappingType cassType, int cassIndex, int cassSlot);
bool LoadingPTMoveToLoadPos(JudgeCassMappingType cassType);
bool LoadingJelToPT(JudgeCassMappingType cassType, int cassIndex, int cassSlot);
bool LoadingPTPrepare();
};

@ -0,0 +1,135 @@
#include "CassToPtUI.h"
#include "OneStepCommonFunc.h"
CassToPtUI::CassToPtUI(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
connect(ui.pushButton_cassToJel, SIGNAL(clicked()), this, SLOT(slot_cassToJel()));
connect(ui.pushButton_jelToAlign, SIGNAL(clicked()), this, SLOT(slot_jelToAlign()));
connect(ui.pushButton_doAlign, SIGNAL(clicked()), this, SLOT(slot_doAlign()));
connect(ui.pushButton_alignToJel, SIGNAL(clicked()), this, SLOT(slot_alignToJel()));
connect(ui.pushButton_PTToLoadPos, SIGNAL(clicked()), this, SLOT(slot_PTToLoadPos()));
connect(ui.pushButton_JelToPT, SIGNAL(clicked()), this, SLOT(slot_JelToPT()));
connect(ui.pushButton_PTPrepare, SIGNAL(clicked()), this, SLOT(slot_PTPrepare()));
connect(ui.pushButton_CassToPT, SIGNAL(clicked()), this, SLOT(slot_CassToPT()));
m_allCassToPTButtonVec = { ui.pushButton_cassToJel, ui.pushButton_jelToAlign, ui.pushButton_doAlign, ui.pushButton_alignToJel,
ui.pushButton_PTToLoadPos, ui.pushButton_JelToPT, ui.pushButton_PTPrepare, ui.pushButton_CassToPT };
}
CassToPtUI::~CassToPtUI()
{
}
void CassToPtUI::slot_cassToJel()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCassToPTButtonVec, ui.pushButton_cassToJel);
m_processFlag = 1;
bindThreadFunc();
}
void CassToPtUI::slot_jelToAlign()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCassToPTButtonVec, ui.pushButton_jelToAlign);
m_processFlag = 2;
bindThreadFunc();
}
void CassToPtUI::slot_doAlign()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCassToPTButtonVec, ui.pushButton_doAlign);
m_processFlag = 3;
bindThreadFunc();
}
void CassToPtUI::slot_alignToJel()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCassToPTButtonVec, ui.pushButton_alignToJel);
m_processFlag = 4;
bindThreadFunc();
}
void CassToPtUI::slot_PTToLoadPos()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCassToPTButtonVec, ui.pushButton_PTToLoadPos);
m_processFlag = 5;
bindThreadFunc();
}
void CassToPtUI::slot_JelToPT()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCassToPTButtonVec, ui.pushButton_JelToPT);
m_processFlag = 6;
bindThreadFunc();
}
void CassToPtUI::slot_PTPrepare()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCassToPTButtonVec, ui.pushButton_PTPrepare);
m_processFlag = 7;
bindThreadFunc();
}
void CassToPtUI::slot_CassToPT()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCassToPTButtonVec, ui.pushButton_CassToPT);
m_processFlag = 8;
bindThreadFunc();
}
void CassToPtUI::ThreadFunc_CassToPTFunc()
{
GlobalFuncCenter::GetInstance()->SendRunTipSignal(COMMON_RUN_TIP);
DevicePosDefine cassPos = GlobalFuncCenter::GetInstance()->GetAlignCassType(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType);
if (cassPos == POS_ERROR)
{
return;
}
if (m_processFlag == 1)
{
m_cassToPTManage.LoadingCassToJel(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType,
POS_CASS_LEFT, GlobalDataCenter::GetInstance()->m_oneStepCurLayer);
}
else if (m_processFlag == 2)
{
OneStepCommonFunc::GetInstance()->JelToAlign(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType,
cassPos, GlobalDataCenter::GetInstance()->m_oneStepCurLayer);
}
else if (m_processFlag == 3)
{
OneStepCommonFunc::GetInstance()->DoAlign(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType);
}
else if (m_processFlag == 4)
{
OneStepCommonFunc::GetInstance()->AlignToJel(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType, cassPos, 1);
}
else if (m_processFlag == 5)
{
m_cassToPTManage.LoadingPTMoveToLoadPos(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType);
}
else if (m_processFlag == 6)
{
m_cassToPTManage.LoadingJelToPT(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType,
POS_PLATFORM, GlobalDataCenter::GetInstance()->m_oneStepCurLayer);
}
else if (m_processFlag == 7)
{
m_cassToPTManage.LoadingPTPrepare();
}
else if (m_processFlag == 8)
{
m_cassToPTManage.OneLoadingCassToPT(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType, GlobalDataCenter::GetInstance()->m_oneStepCurLayer);
}
GlobalFuncCenter::GetInstance()->SendRunTipSignal(COMMON_END_TIP);
}
void CassToPtUI::bindThreadFunc()
{
m_cassToPtThread = std::thread(&CassToPtUI::ThreadFunc_CassToPTFunc, this);
m_cassToPtThread.detach();
}

@ -0,0 +1,41 @@
#pragma once
#include <QWidget>
#include <thread>
#include "ui_CassToPtUI.h"
#include "CassToPtManager.h"
#include "GlobalFuncCenter.h"
class CassToPtUI : public QWidget
{
Q_OBJECT
public:
CassToPtUI(QWidget *parent = Q_NULLPTR);
~CassToPtUI();
public slots:
void slot_cassToJel();
void slot_jelToAlign();
void slot_doAlign();
void slot_alignToJel();
void slot_PTToLoadPos();
void slot_JelToPT();
void slot_PTPrepare();
void slot_CassToPT();
private:
void ThreadFunc_CassToPTFunc();
void bindThreadFunc();
private:
Ui::CassToPtUI ui;
std::vector<QPushButton*> m_allCassToPTButtonVec;
CassToPtManager m_cassToPTManage;
int m_processFlag = -1;
std::thread m_cassToPtThread;
};

@ -0,0 +1,419 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CassToPtUI</class>
<widget class="QWidget" name="CassToPtUI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1874</width>
<height>1225</height>
</rect>
</property>
<property name="windowTitle">
<string>CassToPtUI</string>
</property>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>70</x>
<y>80</y>
<width>1692</width>
<height>854</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="2,8">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>100</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>150</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_loadport.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<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>
<widget class="QLabel" name="label_2">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>150</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_down.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3">
<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>
<widget class="QLabel" name="label_3">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>150</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_platform.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pushButton_cassToJel">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>料盒到机械手</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="maximumSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_left.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_jelToAlign">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>机械手到准直器</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_5">
<property name="maximumSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_left.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_doAlign">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>执行准直</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_6">
<property name="maximumSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_left.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_alignToJel">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>准直器到机械手</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_7">
<property name="maximumSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_left.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_PTToLoadPos">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>平台到上料位</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_8">
<property name="maximumSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_left.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_JelToPT">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>机械手到平台</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_9">
<property name="maximumSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_left.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_PTPrepare">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>平台准备</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<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>
<item>
<widget class="QPushButton" name="pushButton_CassToPT">
<property name="minimumSize">
<size>
<width>0</width>
<height>80</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>一键上料</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="Debonding.qrc"/>
</resources>
<connections/>
</ui>

@ -0,0 +1,50 @@
#include "CassUI.h"
CassUI::CassUI(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
InitCassUI();
}
CassUI::~CassUI()
{
m_cass1Vec.clear();
m_cass3Vec.clear();
}
void CassUI::InitCassUI()
{
for (int i = 0; i < CASS_LAYER; i++)
{
int curLayer = CASS_LAYER - i;
std::shared_ptr<MyCassLayerRect> rectObj1 = std::make_shared<MyCassLayerRect>(
0,
510 / CASS_LAYER * i,
510,
510 / CASS_LAYER);
rectObj1->setBrush(INIT_COLOR);
rectObj1->m_layerNum = curLayer;
m_cass1Vec.push_back(rectObj1);
m_cass1Scene.addItem(rectObj1.get());
ui.graphicsView_cass1->setScene(&m_cass1Scene);
}
for (int i = 0; i < CASS_LAYER; i++)
{
int curLayer = CASS_LAYER - i;
std::shared_ptr<MyCassLayerRect> rectObj1 = std::make_shared<MyCassLayerRect>(
0,
510 / CASS_LAYER * i,
510,
510 / CASS_LAYER);
rectObj1->setBrush(INIT_COLOR);
rectObj1->m_layerNum = curLayer;
m_cass3Vec.push_back(rectObj1);
m_cass3Scene.addItem(rectObj1.get());
ui.graphicsView_cass3->setScene(&m_cass3Scene);
}
}

@ -0,0 +1,28 @@
#pragma once
#include <QWidget>
#include <memory>
#include "ui_CassUI.h"
#include "MyCassLayerRect.h"
#include "GlobalTypeDefine.h"
class CassUI : public QWidget
{
Q_OBJECT
public:
CassUI(QWidget *parent = Q_NULLPTR);
~CassUI();
private:
void InitCassUI();
private:
Ui::CassUI ui;
std::vector<std::shared_ptr<MyCassLayerRect>> m_cass1Vec;
std::vector<std::shared_ptr<MyCassLayerRect>> m_cass3Vec;
QGraphicsScene m_cass1Scene;
QGraphicsScene m_cass3Scene;
};

@ -0,0 +1,152 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CassUI</class>
<widget class="QWidget" name="CassUI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1141</width>
<height>832</height>
</rect>
</property>
<property name="windowTitle">
<string>CassUI</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QLabel" name="label_2">
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(220, 255, 255);</string>
</property>
<property name="text">
<string>实时运行数据</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(168, 221, 255);</string>
</property>
<property name="text">
<string>剩余纸张数量0</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label_3">
<property name="minimumSize">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(168, 221, 255);</string>
</property>
<property name="text">
<string>CASS1</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QGraphicsView" name="graphicsView_cass1"/>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="label_6">
<property name="minimumSize">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(168, 221, 255);</string>
</property>
<property name="text">
<string>CASS2</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QGraphicsView" name="graphicsView_cass3"/>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

@ -0,0 +1,15 @@
#include "CleanMachineManage.h"
CleanMachineManage::CleanMachineManage(QObject *parent)
: QObject(parent)
{
}
CleanMachineManage::~CleanMachineManage()
{
}
bool CleanMachineManage::OneStartClean()
{
return GlobalObjCenter::GetInstance()->m_cleanMachineObj.ExecuteCommand(CleanMachineExportManage::COMMON_START_CLEAN);
}

@ -0,0 +1,17 @@
#pragma once
#include <QObject>
#include "GlobalObjCenter.h"
class CleanMachineManage : public QObject
{
Q_OBJECT
public:
CleanMachineManage(QObject *parent = nullptr);
~CleanMachineManage();
public:
bool OneStartClean();
};

@ -0,0 +1,84 @@
#include "CleanToCassManage.h"
CleanToCassManage::CleanToCassManage(QObject *parent)
: QObject(parent)
{
}
CleanToCassManage::~CleanToCassManage()
{
}
bool CleanToCassManage::CleanPTPrepare(JudgeCassMappingType cassType)
{
RunActionCommand commandObj;
commandObj.m_commandType = RunActionCommand::COMMAND_CLEANPT_PREPATE;
commandObj.m_cassType = cassType;
return commandObj.ExecuteCommand();
}
bool CleanToCassManage::CleanToJel(JudgeCassMappingType cassType)
{
RunActionCommand commandObj;
commandObj.m_commandType = RunActionCommand::COMMAND_CLEAN_TO_JEL;
commandObj.m_cassType = cassType;
return commandObj.ExecuteCommand();
}
bool CleanToCassManage::JelToCass(JudgeCassMappingType cassType, int cassSlot)
{
RunActionCommand commandObj;
commandObj.m_commandType = RunActionCommand::COMMAND_JEL_TO_CASS;
commandObj.m_cassType = cassType;
commandObj.m_cassSlot = cassSlot;
return commandObj.ExecuteCommand();
}
bool CleanToCassManage::OneCleanToCass(JudgeCassMappingType cassType, int cassSlot)
{
std::vector<RunActionCommand> commandVec;
RunActionCommand commandObj;
commandObj.m_commandType = RunActionCommand::COMMAND_CLEANPT_PREPATE;
commandObj.m_cassType = cassType;
commandVec.push_back(commandObj);
commandObj.m_commandType = RunActionCommand::COMMAND_CLEAN_TO_JEL;
commandObj.m_cassType = cassType;
commandVec.push_back(commandObj);
commandObj.m_commandType = RunActionCommand::COMMAND_JEL_TO_ALIGN;
commandObj.m_cassType = cassType;
commandObj.m_cassIndex = GlobalFuncCenter::GetInstance()->GetAlignCassType(cassType);
commandObj.m_cassSlot = cassSlot;
commandObj.m_commandType = RunActionCommand::COMMAND_DO_ALIGN;
commandObj.m_cassType = cassType;
commandObj.m_commandType = RunActionCommand::COMMAND_ALIGN_TO_JEL;
commandObj.m_cassType = cassType;
commandObj.m_cassIndex = GlobalFuncCenter::GetInstance()->GetAlignCassType(cassType);
commandObj.m_cassSlot = cassSlot;
commandObj.m_commandType = RunActionCommand::COMMAND_JEL_TO_CASS;
commandObj.m_cassType = cassType;
commandObj.m_cassSlot = cassSlot;
commandVec.push_back(commandObj);
for (auto iter : commandVec)
{
if (GlobalDataCenter::GetInstance()->m_IsContinueExecuteCommand)
{
bool isSuccess = iter.ExecuteCommand();
if (!isSuccess)
{
return false;
}
}
else
{
return false;
}
}
return true;
}

@ -0,0 +1,20 @@
#pragma once
#include <QObject>
#include "GlobalObjCenter.h"
class CleanToCassManage : public QObject
{
Q_OBJECT
public:
CleanToCassManage(QObject *parent = nullptr);
~CleanToCassManage();
public:
bool CleanPTPrepare(JudgeCassMappingType cassType);
bool CleanToJel(JudgeCassMappingType cassType);
bool JelToCass(JudgeCassMappingType cassType, int cassSlot);
bool OneCleanToCass(JudgeCassMappingType cassType, int cassSlot);
};

@ -0,0 +1,118 @@
#include "CleanToCassUI.h"
#include "OneStepCommonFunc.h"
CleanToCassUI::CleanToCassUI(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
connect(ui.pushButton_cleanPTPrepare, SIGNAL(clicked()), this, SLOT(slot_cleanPTPrepare()));
connect(ui.pushButton_cleanToJel, SIGNAL(clicked()), this, SLOT(slot_cleanToJel()));
connect(ui.pushButton_jelToAlign, SIGNAL(clicked()), this, SLOT(slot_jelToAlign()));
connect(ui.pushButton_doAlign, SIGNAL(clicked()), this, SLOT(slot_doAlign()));
connect(ui.pushButton_alignToJel, SIGNAL(clicked()), this, SLOT(slot_alignToJel()));
connect(ui.pushButton_JelToCass, SIGNAL(clicked()), this, SLOT(slot_JelToCass()));
connect(ui.pushButton_cleanToCass, SIGNAL(clicked()), this, SLOT(slot_cleanToCass()));
m_allCleanToCassBtnVec = { ui.pushButton_cleanPTPrepare, ui.pushButton_cleanToJel, ui.pushButton_JelToCass, ui.pushButton_cleanToCass,
ui.pushButton_jelToAlign, ui.pushButton_doAlign, ui.pushButton_alignToJel};
}
CleanToCassUI::~CleanToCassUI()
{
}
void CleanToCassUI::slot_cleanPTPrepare()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCleanToCassBtnVec, ui.pushButton_cleanPTPrepare);
m_processCleanToCassFlag = 1;
bindThreadFunc();
}
void CleanToCassUI::slot_cleanToJel()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCleanToCassBtnVec, ui.pushButton_cleanToJel);
m_processCleanToCassFlag = 2;
bindThreadFunc();
}
void CleanToCassUI::slot_jelToAlign()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCleanToCassBtnVec, ui.pushButton_jelToAlign);
m_processCleanToCassFlag = 3;
bindThreadFunc();
}
void CleanToCassUI::slot_doAlign()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCleanToCassBtnVec, ui.pushButton_doAlign);
m_processCleanToCassFlag = 4;
bindThreadFunc();
}
void CleanToCassUI::slot_alignToJel()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCleanToCassBtnVec, ui.pushButton_alignToJel);
m_processCleanToCassFlag = 5;
bindThreadFunc();
}
void CleanToCassUI::slot_JelToCass()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCleanToCassBtnVec, ui.pushButton_JelToCass);
m_processCleanToCassFlag = 6;
bindThreadFunc();
}
void CleanToCassUI::slot_cleanToCass()
{
GlobalFuncCenter::GetInstance()->UndateButtonColor(m_allCleanToCassBtnVec, ui.pushButton_cleanToCass);
m_processCleanToCassFlag = 7;
bindThreadFunc();
}
void CleanToCassUI::ThreadFunc_cleanToCassFunc()
{
GlobalFuncCenter::GetInstance()->SendRunTipSignal(COMMON_RUN_TIP);
DevicePosDefine cassPos = GlobalFuncCenter::GetInstance()->GetAlignCassType(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType);
if (cassPos == POS_ERROR)
{
return;
}
if (m_processCleanToCassFlag == 1)
{
m_cleanToCassObj.CleanPTPrepare(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType);
}
if (m_processCleanToCassFlag == 2)
{
m_cleanToCassObj.CleanToJel(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType);
}
if (m_processCleanToCassFlag == 3)
{
OneStepCommonFunc::GetInstance()->JelToAlign(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType,
cassPos, GlobalDataCenter::GetInstance()->m_oneStepCurLayer);
}
if (m_processCleanToCassFlag == 4)
{
}
if (m_processCleanToCassFlag == 5)
{
}
else if (m_processCleanToCassFlag == 6)
{
m_cleanToCassObj.JelToCass(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType, GlobalDataCenter::GetInstance()->m_oneStepCurLayer);
}
else if (m_processCleanToCassFlag == 7)
{
m_cleanToCassObj.OneCleanToCass(GlobalDataCenter::GetInstance()->m_oneStepCassMappingType, GlobalDataCenter::GetInstance()->m_oneStepCurLayer);
}
GlobalFuncCenter::GetInstance()->SendRunTipSignal(COMMON_END_TIP);
}
void CleanToCassUI::bindThreadFunc()
{
m_cleanToCassThread = std::thread(&CleanToCassUI::ThreadFunc_cleanToCassFunc, this);
m_cleanToCassThread.detach();
}

@ -0,0 +1,39 @@
#pragma once
#include <QWidget>
#include <thread>
#include "ui_CleanToCassUI.h"
#include "GlobalFuncCenter.h"
#include "CleanToCassManage.h"
class CleanToCassUI : public QWidget
{
Q_OBJECT
public:
CleanToCassUI(QWidget *parent = Q_NULLPTR);
~CleanToCassUI();
public slots:
void slot_cleanPTPrepare();
void slot_cleanToJel();
void slot_jelToAlign();
void slot_doAlign();
void slot_alignToJel();
void slot_JelToCass();
void slot_cleanToCass();
private:
void ThreadFunc_cleanToCassFunc();
void bindThreadFunc();
private:
Ui::CleanToCassUI ui;
CleanToCassManage m_cleanToCassObj;
std::vector<QPushButton*> m_allCleanToCassBtnVec;
int m_processCleanToCassFlag = -1;
std::thread m_cleanToCassThread;
};

@ -0,0 +1,351 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CleanToCassUI</class>
<widget class="QWidget" name="CleanToCassUI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1861</width>
<height>988</height>
</rect>
</property>
<property name="windowTitle">
<string>CleanToCassUI</string>
</property>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>200</x>
<y>80</y>
<width>1565</width>
<height>781</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="2,8">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>150</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_clean.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>150</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_down.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>150</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_loadport.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pushButton_cleanPTPrepare">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>清洗工作台准备</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_5">
<property name="maximumSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_left.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_cleanToJel">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>清洗工作台到机械手</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="maximumSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_left.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_jelToAlign">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>机械手到准直器</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_6">
<property name="maximumSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_left.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_doAlign">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>执行准直</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_7">
<property name="maximumSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_left.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_alignToJel">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>准直到机械手</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_8">
<property name="maximumSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_left.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_JelToCass">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>机械手到料盒</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<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>
<item>
<widget class="QPushButton" name="pushButton_cleanToCass">
<property name="minimumSize">
<size>
<width>0</width>
<height>80</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>一键从清洗工作台到料盒</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="Debonding.qrc"/>
</resources>
<connections/>
</ui>

@ -0,0 +1,11 @@
#include "CleanUI.h"
CleanUI::CleanUI(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
}
CleanUI::~CleanUI()
{
}

@ -0,0 +1,16 @@
#pragma once
#include <QWidget>
#include "ui_CleanUI.h"
class CleanUI : public QWidget
{
Q_OBJECT
public:
CleanUI(QWidget *parent = Q_NULLPTR);
~CleanUI();
private:
Ui::CleanUI ui;
};

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CleanUI</class>
<widget class="QWidget" name="CleanUI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>978</width>
<height>733</height>
</rect>
</property>
<property name="windowTitle">
<string>CleanUI</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>310</x>
<y>290</y>
<width>391</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>我是清洗UI</string>
</property>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

@ -0,0 +1,10 @@
#include "CleanWorkManage.h"
CleanWorkManage::CleanWorkManage(QObject *parent)
: QObject(parent)
{
}
CleanWorkManage::~CleanWorkManage()
{
}

@ -0,0 +1,12 @@
#pragma once
#include <QObject>
class CleanWorkManage : public QObject
{
Q_OBJECT
public:
CleanWorkManage(QObject *parent);
~CleanWorkManage();
};

@ -0,0 +1,66 @@
#include "CleaningWorkThread.h"
CleaningWorkThread::CleaningWorkThread(QObject *parent)
: QObject(parent)
{
}
CleaningWorkThread::~CleaningWorkThread()
{
}
void CleaningWorkThread::InitCleaningWorkThread()
{
m_cleaningWorkThread = std::thread(&CleaningWorkThread::ThreadFunc_CleaningWork, this);
}
void CleaningWorkThread::StartRunCleaningWorkThread()
{
SetCleaningWorkkFlag(true);
}
void CleaningWorkThread::SetCleaningWorkkFlag(bool flag)
{
m_cleaningWorkMutex.lock();
m_cleaningWorkThreadStartRun = flag;
m_cleaningWorkMutex.unlock();
}
bool CleaningWorkThread::ReadCleaningWorkFlag()
{
bool flag = false;
m_cleaningWorkMutex.lock();
flag = m_cleaningWorkThreadStartRun;
m_cleaningWorkMutex.unlock();
return flag;
}
void CleaningWorkThread::ThreadFunc_CleaningWork()
{
while (m_cleaningWorkThreadIsRun)
{
while (!ReadCleaningWorkFlag())
{
std::this_thread::sleep_for(std::chrono::seconds(1));
}
std::cout << "----start CleaningWork" << std::endl;
//std::this_thread::sleep_for(std::chrono::seconds(30));
bool isSuccess = m_clearMachineObj.OneStartClean();
if (!isSuccess)
{
GlobalDataCenter::GetInstance()->m_IsContinueExecuteCommand = false;
return;
}
SetCleaningWorkkFlag(false);
emit signal_sendCleaningWorkEnd();
std::cout << "----end CleaningWork" << std::endl;
}
}

@ -0,0 +1,44 @@
#pragma once
#include <QObject>
#include <thread>
#include <QMutex>
#include <iostream>
#include "CleanMachineManage.h"
class CleaningWorkThread : public QObject
{
Q_OBJECT
public:
CleaningWorkThread(QObject *parent = nullptr);
~CleaningWorkThread();
signals:
void signal_sendCleaningWorkEnd();
public:
void InitCleaningWorkThread();
//开始运行平台解键合线程
void StartRunCleaningWorkThread();
void SetCleaningWorkkFlag(bool flag);
bool ReadCleaningWorkFlag();
public:
void ThreadFunc_CleaningWork();
public:
std::thread m_cleaningWorkThread;
//线程是否结束
bool m_cleaningWorkThreadIsRun = true;
//开始运行线程标志
bool m_cleaningWorkThreadStartRun = false;
QMutex m_cleaningWorkMutex;
private:
CleanMachineManage m_clearMachineObj;
};

@ -0,0 +1,151 @@
#include "DatabaseManage.h"
DatabaseManage::DatabaseManage(QObject *parent)
: QObject(parent)
{
dbSqlite = QSqlDatabase::addDatabase("QSQLITE");
}
DatabaseManage::~DatabaseManage()
{
}
void DatabaseManage::ModifyPaperCount(int paperCount)
{
QString appPath = QCoreApplication::applicationDirPath();
QString dbPath = appPath + "/database/Debonding.db";
dbSqlite.setDatabaseName(dbPath); // 设置数据库文件路径
if (dbSqlite.open()) {
QString strSql = "UPDATE PaperManage SET paperCount = 'replace1'";
strSql.replace("replace1", QString::number(paperCount));
QSqlQuery sqlQuery;
sqlQuery.exec(strSql);
dbSqlite.close();
}
}
int DatabaseManage::ReadPaperCount()
{
int paperCount = 0;
QString appPath = QCoreApplication::applicationDirPath();
QString dbPath = appPath + "/database/Debonding.db";
dbSqlite.setDatabaseName(dbPath); // 设置数据库文件路径
if (dbSqlite.open()) {
QSqlQuery readQuery;
readQuery.exec("SELECT * FROM PaperManage");
while (readQuery.next()) {
paperCount = readQuery.value(0).toInt();
}
dbSqlite.close();
}
return paperCount;
}
void DatabaseManage::SetWaferPos(WaferAttr obj)
{
m_waferPosMutex.lock();
QString appPath = QCoreApplication::applicationDirPath();
QString dbPath = appPath + "/database/Debonding.db";
dbSqlite.setDatabaseName(dbPath); // 设置数据库文件路径
if (dbSqlite.open()) {
QString strSql = "delete from WaferPos where slot = 'replace1'";
strSql.replace("replace1", QString::number(obj.slot));
QSqlQuery sqlQuery;
sqlQuery.exec(strSql);
strSql = "INSERT INTO WaferPos (slot, waferPos) VALUES ('replace1', 'replace2', 'replace3')";
strSql.replace("replace1", QString::number(obj.slot));
strSql.replace("replace2", QString::number(obj.waferCurPos));
strSql.replace("replace3", QString::number(obj.cassType));
sqlQuery.exec(strSql);
dbSqlite.close();
}
m_waferPosMutex.unlock();
}
std::vector<WaferAttr> DatabaseManage::GetWaferPos()
{
std::vector<WaferAttr> rtnVec;
m_waferPosMutex.lock();
QString appPath = QCoreApplication::applicationDirPath();
QString dbPath = appPath + "/database/Debonding.db";
dbSqlite.setDatabaseName(dbPath); // 设置数据库文件路径
if (dbSqlite.open()) {
QSqlQuery readQuery;
readQuery.exec("SELECT * FROM WaferPos");
while (readQuery.next()) {
WaferAttr obj;
obj.slot = readQuery.value(0).toInt();
obj.waferCurPos = static_cast<DevicePosDefine>(readQuery.value(1).toInt());
obj.cassType = static_cast<JudgeCassMappingType>(readQuery.value(2).toInt());
rtnVec.push_back(obj);
}
dbSqlite.close();
}
m_waferPosMutex.unlock();
return rtnVec;
}
bool DatabaseManage::JudgeDeviceHaveWafer()
{
bool deviceHaveWaferFlag = false;
m_waferPosMutex.lock();
QString appPath = QCoreApplication::applicationDirPath();
QString dbPath = appPath + "/database/Debonding.db";
dbSqlite.setDatabaseName(dbPath); // 设置数据库文件路径
if (dbSqlite.open()) {
QSqlQuery readQuery;
readQuery.exec("SELECT * FROM WaferPos");
while (readQuery.next()) {
WaferAttr obj;
obj.slot = readQuery.value(0).toInt();
obj.waferCurPos = static_cast<DevicePosDefine>(readQuery.value(1).toInt());
for (auto& iter : GlobalDataCenter::GetInstance()->m_waferAllDevicePos)
{
if (iter == obj.waferCurPos)
{
deviceHaveWaferFlag = true;
}
}
}
dbSqlite.close();
}
m_waferPosMutex.unlock();
return deviceHaveWaferFlag;
}
bool DatabaseManage::JudgePosIsExistWafer(DevicePosDefine pos)
{
for (int i = 0; i < COMMON_WAIT_TIME; i++)
{
bool isFlag = false;
std::vector<WaferAttr> objVec = GetWaferPos();
for (auto& iter : objVec)
{
if (iter.waferCurPos == pos)
{
isFlag = true;
}
}
if (isFlag)
{
std::this_thread::sleep_for(std::chrono::seconds(5));
}
else
{
return true;
}
}
return false;
}

@ -0,0 +1,51 @@
#pragma once
#include <QObject>
#include <vector>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QCoreApplication>
#include <QVariant>
#include <QMutex>
#include <thread>
#include "GlobalTypeDefine.h"
#include "GlobalDataCenter.h"
class DatabaseManage : public QObject
{
Q_OBJECT
public:
DatabaseManage(QObject *parent = nullptr);
~DatabaseManage();
public:
void ModifyPaperCount(int paperCount);
int ReadPaperCount();
void SetWaferPos(WaferAttr obj);
std::vector<WaferAttr> GetWaferPos();
bool JudgeDeviceHaveWafer();
/*
POS_CASS_LEFT = 1, //역迦썩숩북품죕분
POS_CASS_CENTER, //썩숩북냥묘렴쀼죕분
POS_CASS_RIGHT, //썩숩북呵겨렴쀼죕분
POS_ALIGN_TOP,
POS_ALIGN_BOTTOM,
POS_PLATFORM,
POS_SAPARATE,
POS_CLEANING,
POS_UPEER_ARM,
POS_LOWER_ARM,
POS_ERROR,
*/
bool JudgePosIsExistWafer(DevicePosDefine pos);
public:
QMutex m_waferPosMutex;
QSqlDatabase dbSqlite;
};

@ -0,0 +1,113 @@
#include "Debonding.h"
Debonding::Debonding(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
GlobalDataCenter::GetInstance()->m_configFlineObj.ReadAllConfigFile();
GlobalDataCenter::GetInstance()->m_configFlineObj.ReadAllRecipe();
GlobalFuncCenter::GetInstance();
InitDebondingUI();
}
void Debonding::slot_setmainInterface()
{
m_gugaoUIObj->EndFlushThread();
ui.stackedWidget->setCurrentWidget(m_mainInterceUIObj);
UpdateButtonShow(ui.pushButton_mainInterface);
}
void Debonding::slot_setRecipeManage()
{
m_gugaoUIObj->EndFlushThread();
m_recipeManageUIObj->InitRecipeManage();
ui.stackedWidget->setCurrentWidget(m_recipeManageUIObj);
UpdateButtonShow(ui.pushButton_recipeManage);
}
void Debonding::slot_setOneStepDebug()
{
m_gugaoUIObj->EndFlushThread();
m_oneStepDebugUIObj->PerOneStepDebugUI();
ui.stackedWidget->setCurrentWidget(m_oneStepDebugUIObj);
UpdateButtonShow(ui.pushButton_OneStepDebug);
}
void Debonding::slot_setGugao()
{
m_gugaoUIObj->StartFlushThread();
ui.stackedWidget->setCurrentWidget(m_gugaoUIObj);
UpdateButtonShow(ui.pushButton_gugao);
}
void Debonding::slot_transformer()
{
m_gugaoUIObj->EndFlushThread();
ui.stackedWidget->setCurrentWidget(m_transformerUIObj);
UpdateButtonShow(ui.pushButton_transformer);
}
void Debonding::slot_paramConfig()
{
m_gugaoUIObj->EndFlushThread();
m_paramConfigUIObj->InitParamConfigUI();
ui.stackedWidget->setCurrentWidget(m_paramConfigUIObj);
UpdateButtonShow(ui.pushButton_paramConfig);
}
void Debonding::InitDebondingUI()
{
m_allDebudingButton = {
ui.pushButton_mainInterface,
ui.pushButton_recipeManage,
ui.pushButton_OneStepDebug,
ui.pushButton_gugao,
ui.pushButton_transformer,
ui.pushButton_paramConfig,
};
m_mainInterceUIObj = new MainInterfaceUI();
m_recipeManageUIObj = new RecipeManageUI();
m_oneStepDebugUIObj = new OneStepDebugUI();
m_gugaoUIObj = new GugaoUI();
m_transformerUIObj = new TransformerUI();
m_paramConfigUIObj = new ParamConfigUI();
ui.stackedWidget->addWidget(m_mainInterceUIObj);
ui.stackedWidget->addWidget(m_recipeManageUIObj);
ui.stackedWidget->addWidget(m_oneStepDebugUIObj);
ui.stackedWidget->addWidget(m_gugaoUIObj);
ui.stackedWidget->addWidget(m_transformerUIObj);
ui.stackedWidget->addWidget(m_paramConfigUIObj);
UpdateButtonShow(ui.pushButton_mainInterface);
ui.stackedWidget->setCurrentWidget(m_mainInterceUIObj);
connect(ui.pushButton_mainInterface, SIGNAL(clicked()), this, SLOT(slot_setmainInterface()));
connect(ui.pushButton_recipeManage, SIGNAL(clicked()), this, SLOT(slot_setRecipeManage()));
connect(ui.pushButton_OneStepDebug, SIGNAL(clicked()), this, SLOT(slot_setOneStepDebug()));
connect(ui.pushButton_gugao, SIGNAL(clicked()), this, SLOT(slot_setGugao()));
connect(ui.pushButton_transformer, SIGNAL(clicked()), this, SLOT(slot_transformer()));
connect(ui.pushButton_paramConfig, SIGNAL(clicked()), this, SLOT(slot_paramConfig()));
}
void Debonding::UpdateButtonShow(QPushButton* curButton)
{
for (auto& iter : m_allDebudingButton)
{
if (iter == curButton)
{
iter->setStyleSheet("background-color: rgb(255, 242, 0);");
}
else
{
iter->setStyleSheet("background-color: rgb(168, 221, 255);");
}
}
}

@ -0,0 +1,43 @@
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_Debonding.h"
#include "MainInterfaceUI.h"
#include "OneStepDebugUI.h"
#include "GugaoUI.h"
#include "TransformerUI.h"
#include "ParamConfigUI.h"
#include "GlobalDataCenter.h"
#include "RecipeManageUI.h"
class Debonding : public QMainWindow
{
Q_OBJECT
public:
Debonding(QWidget *parent = Q_NULLPTR);
public slots:
void slot_setmainInterface();
void slot_setRecipeManage();
void slot_setOneStepDebug();
void slot_setGugao();
void slot_transformer();
void slot_paramConfig();
private:
void InitDebondingUI();
void UpdateButtonShow(QPushButton* curButton);
private:
Ui::DebondingClass ui;
MainInterfaceUI* m_mainInterceUIObj;
RecipeManageUI* m_recipeManageUIObj;
OneStepDebugUI* m_oneStepDebugUIObj;
GugaoUI* m_gugaoUIObj;
TransformerUI* m_transformerUIObj;
ParamConfigUI* m_paramConfigUIObj;
std::vector<QPushButton*> m_allDebudingButton;
};

@ -0,0 +1,16 @@
<RCC>
<qresource prefix="/Debonding">
<file>style/global.qss</file>
<file>style/logo_laipu.png</file>
<file>style/logo_loadport.png</file>
<file>style/logo_platform.png</file>
<file>style/logo_down.png</file>
<file>style/logo_left.png</file>
<file>style/logo_saparate.png</file>
<file>style/logo_clean.png</file>
<file>style/logo_no.png</file>
<file>style/logo_yes.png</file>
<file>style/logo_tip.png</file>
<file>style/logo_mainLayout.png</file>
</qresource>
</RCC>

@ -0,0 +1,259 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DebondingClass</class>
<widget class="QMainWindow" name="DebondingClass">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1465</width>
<height>1120</height>
</rect>
</property>
<property name="windowTitle">
<string>Debonding</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>20</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>10</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>60</width>
<height>45</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>60</width>
<height>45</height>
</size>
</property>
<property name="font">
<font>
<pointsize>1</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="Debonding.qrc">:/Debonding/style/logo_laipu.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>25</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>全自动解键合</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_mainInterface">
<property name="minimumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>首页</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_recipeManage">
<property name="minimumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Recipe管理</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_OneStepDebug">
<property name="minimumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>单步运行</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_gugao">
<property name="minimumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>运动控制</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_transformer">
<property name="minimumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>电缸控制</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_paramConfig">
<property name="minimumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>130</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>参数配置</string>
</property>
</widget>
</item>
<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>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QStackedWidget" name="stackedWidget">
<widget class="QWidget" name="page"/>
<widget class="QWidget" name="page_2"/>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="Debonding.qrc"/>
</resources>
<connections/>
</ui>

@ -0,0 +1,260 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{88BE484F-5799-44CC-94FE-38DAA8B96C5B}</ProjectGuid>
<Keyword>QtVS_v303</Keyword>
<QtMsBuild Condition="'$(QtMsBuild)'=='' OR !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
<Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
</Target>
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)' == 'Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)' == 'Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
<Import Project="$(QtMsBuild)\qt_defaults.props" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|Win32'">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|Win32'">
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>E:\Debonding\Debonding\Debonding;E:\Debonding\Debonding\Debonding\style;.\;E:\third\MotionCtrlCard;E:\third\Jel;E:\third\comm;E:\third\JelRobotManage;E:\third\TransformerManage;E:\Debonding\Debonding\DebondingAlgo;E:\third\XizManage;E:\third\Laser;E:\third\CleanMachineManage;E:\third\GazAlignmanage;E:\third\QTLogger;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>E:\third\MotionCtrlCard;E:\Debonding\Debonding\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>MotionCtrlCard.lib;JELManager.lib;JelRobotManage.lib;TransformerManage.lib;DebondingAlgo.lib;XizManage.lib;LayserMirror.lib;CleanMachineManage.lib;GazAlignmanage.lib;QTLogger.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>E:\Debonding\Debonding\Debonding;E:\Debonding\Debonding\Debonding\style;.\;E:\third\MotionCtrlCard;E:\third\Jel;E:\third\comm;E:\third\JelRobotManage;E:\third\TransformerManage;E:\Debonding\Debonding\DebondingAlgo;E:\third\XizManage;E:\third\Laser;E:\third\CleanMachineManage;E:\third\GazAlignmanage;E:\third\QTLogger;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>E:\third\MotionCtrlCard;E:\Debonding\Debonding\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>MotionCtrlCard.lib;JELManager.lib;JelRobotManage.lib;TransformerManage.lib;DebondingAlgo.lib;XizManage.lib;LayserMirror.lib;CleanMachineManage.lib;GazAlignmanage.lib;QTLogger.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|Win32'" Label="QtSettings">
<QtInstall>qt5.9</QtInstall>
<QtModules>core;sql;network;gui;widgets;websockets;charts;networkauth</QtModules>
<QtBuildConfig>debug</QtBuildConfig>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|Win32'" Label="QtSettings">
<QtInstall>qt5.9</QtInstall>
<QtModules>core;sql;network;gui;widgets;websockets;charts;networkauth</QtModules>
<QtBuildConfig>release</QtBuildConfig>
</PropertyGroup>
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
<Import Project="$(QtMsBuild)\qt.props" />
</ImportGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|Win32'" Label="Configuration">
<ClCompile>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)' == 'Release|Win32'" Label="Configuration">
<ClCompile>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<DebugInformationFormat>None</DebugInformationFormat>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>false</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="CassMappingManage.cpp" />
<ClCompile Include="CassMappingUI.cpp" />
<ClCompile Include="CassToPtManager.cpp" />
<ClCompile Include="CassToPtUI.cpp" />
<ClCompile Include="CassUI.cpp" />
<ClCompile Include="CleaningWorkThread.cpp" />
<ClCompile Include="CleanMachineManage.cpp" />
<ClCompile Include="CleanToCassManage.cpp" />
<ClCompile Include="CleanToCassUI.cpp" />
<ClCompile Include="CleanUI.cpp" />
<ClCompile Include="CleanWorkManage.cpp" />
<ClCompile Include="DatabaseManage.cpp" />
<ClCompile Include="FdcParamUI.cpp" />
<ClCompile Include="GlobalAlarmCenter.cpp" />
<ClCompile Include="GlobalDataCenter.cpp" />
<ClCompile Include="GlobalFuncCenter.cpp" />
<ClCompile Include="GlobalObjCenter.cpp" />
<ClCompile Include="GugaoCardManage.cpp" />
<ClCompile Include="GugaoUI.cpp" />
<ClCompile Include="MachineDrawingUI.cpp" />
<ClCompile Include="MainInterfaceUI.cpp" />
<ClCompile Include="MyCassLayerRect.cpp" />
<ClCompile Include="MyChartView.cpp" />
<ClCompile Include="MyMessageBox.cpp" />
<ClCompile Include="OneReturnWafer.cpp" />
<ClCompile Include="OneStepCommonFunc.cpp" />
<ClCompile Include="OneStepDebugUI.cpp" />
<ClCompile Include="ParamConfigUI.cpp" />
<ClCompile Include="PlatformToSapatateThread.cpp" />
<ClCompile Include="PlatformWorkThread.cpp" />
<ClCompile Include="PtToSaparateManage.cpp" />
<ClCompile Include="PtToSaparateUI.cpp" />
<ClCompile Include="PtWorkManage.cpp" />
<ClCompile Include="PtWorkUI.cpp" />
<ClCompile Include="ReadConfigFile.cpp" />
<ClCompile Include="RecipeAttr.cpp" />
<ClCompile Include="RecipeAttrUI.cpp" />
<ClCompile Include="RecipeManageUI.cpp" />
<ClCompile Include="ReturnCassThread.cpp" />
<ClCompile Include="RunActionCommand.cpp" />
<ClCompile Include="RunThreadManage.cpp" />
<ClCompile Include="RunTipUI.cpp" />
<ClCompile Include="SaparateToClean.cpp" />
<ClCompile Include="SaparateToCleanManage.cpp" />
<ClCompile Include="SaparateToCleanThread.cpp" />
<ClCompile Include="SaparateWorkManage.cpp" />
<ClCompile Include="SaparateWorkThread.cpp" />
<ClCompile Include="SaparateWorkUI.cpp" />
<ClCompile Include="TransformerUI.cpp" />
<ClCompile Include="WorkPlatFormUI.cpp" />
<QtRcc Include="Debonding.qrc" />
<QtUic Include="CassMappingUI.ui" />
<QtUic Include="CassToPtUI.ui" />
<QtUic Include="CassUI.ui" />
<QtUic Include="CleanToCassUI.ui" />
<QtUic Include="CleanUI.ui" />
<QtUic Include="Debonding.ui" />
<QtMoc Include="Debonding.h" />
<ClCompile Include="CassToPlatFormThread.cpp" />
<ClCompile Include="Debonding.cpp" />
<ClCompile Include="main.cpp" />
<QtUic Include="FdcParamUI.ui" />
<QtUic Include="GugaoUI.ui" />
<QtUic Include="MachineDrawingUI.ui" />
<QtUic Include="MainInterfaceUI.ui" />
<QtUic Include="OneReturnWafer.ui" />
<QtUic Include="OneStepDebugUI.ui" />
<QtUic Include="ParamConfigUI.ui" />
<QtUic Include="PtToSaparateUI.ui" />
<QtUic Include="PtWorkUI.ui" />
<QtUic Include="RecipeAttrUI.ui" />
<QtUic Include="RecipeManageUI.ui" />
<QtUic Include="RunTipUI.ui" />
<QtUic Include="SaparateToClean.ui" />
<QtUic Include="SaparateWorkUI.ui" />
<QtUic Include="TransformerUI.ui" />
<QtUic Include="WorkPlatFormUI.ui" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="CassToPlatFormThread.h" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="RunThreadManage.h" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="PlatformWorkThread.h" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="PlatformToSapatateThread.h" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="SaparateWorkThread.h" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="ReturnCassThread.h" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="GlobalDataCenter.h" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="OneReturnWafer.h" />
<ClInclude Include="RunActionCommand.h" />
<QtMoc Include="SaparateToCleanThread.h" />
<QtMoc Include="OneStepCommonFunc.h" />
<QtMoc Include="SaparateWorkManage.h" />
<QtMoc Include="PtWorkManage.h" />
<QtMoc Include="SaparateToCleanManage.h" />
<QtMoc Include="PtToSaparateManage.h" />
<QtMoc Include="RecipeAttrUI.h" />
<QtMoc Include="RecipeManageUI.h" />
<QtMoc Include="RecipeAttr.h" />
<QtMoc Include="RunTipUI.h" />
<QtMoc Include="GlobalFuncCenter.h" />
<QtMoc Include="GugaoCardManage.h" />
<QtMoc Include="GlobalObjCenter.h" />
<QtMoc Include="CassToPtManager.h" />
<QtMoc Include="CassMappingManage.h" />
<QtMoc Include="CleanToCassManage.h" />
<QtMoc Include="DatabaseManage.h" />
<QtMoc Include="CleanWorkManage.h" />
<QtMoc Include="CleanMachineManage.h" />
<QtMoc Include="CleaningWorkThread.h" />
<ClInclude Include="MyMessageBox.h" />
<QtMoc Include="ReadConfigFile.h" />
<QtMoc Include="ParamConfigUI.h" />
<QtMoc Include="TransformerUI.h" />
<QtMoc Include="GugaoUI.h" />
<QtMoc Include="SaparateToClean.h" />
<QtMoc Include="SaparateWorkUI.h" />
<QtMoc Include="PtToSaparateUI.h" />
<QtMoc Include="PtWorkUI.h" />
<QtMoc Include="OneStepDebugUI.h" />
<QtMoc Include="MyChartView.h" />
<QtMoc Include="MyCassLayerRect.h" />
<QtMoc Include="MainInterfaceUI.h" />
<QtMoc Include="WorkPlatFormUI.h" />
<QtMoc Include="MachineDrawingUI.h" />
<QtMoc Include="GlobalAlarmCenter.h" />
<QtMoc Include="CassUI.h" />
<QtMoc Include="FdcParamUI.h" />
<QtMoc Include="CassToPtUI.h" />
<QtMoc Include="CleanUI.h" />
<QtMoc Include="CleanToCassUI.h" />
<QtMoc Include="CassMappingUI.h" />
<ClInclude Include="GlobalTypeDefine.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
<Import Project="$(QtMsBuild)\qt.targets" />
</ImportGroup>
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

@ -0,0 +1,453 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Form Files">
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
<Extensions>ui</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
<Extensions>qrc;*</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="RunThread">
<UniqueIdentifier>{5ca1be1d-e59c-42f8-a612-20a141254ced}</UniqueIdentifier>
</Filter>
<Filter Include="Form Files\MainInterface">
<UniqueIdentifier>{8164bebf-8267-4070-88bf-f098bdc0cc36}</UniqueIdentifier>
</Filter>
<Filter Include="Form Files\OneStepDebug">
<UniqueIdentifier>{5d9095b9-f83e-48d2-b0b9-6fbd855ad53d}</UniqueIdentifier>
</Filter>
<Filter Include="UIFile">
<UniqueIdentifier>{96b1929c-bf6f-473c-8012-ce1da36eb361}</UniqueIdentifier>
</Filter>
<Filter Include="UIFile\MainInterface">
<UniqueIdentifier>{e35490bc-d9e0-4ecf-a3c8-a5e3e6e02cde}</UniqueIdentifier>
</Filter>
<Filter Include="UIFile\OneStepDebug">
<UniqueIdentifier>{512a5485-ace4-4cc3-b539-caf63bfc4062}</UniqueIdentifier>
</Filter>
<Filter Include="thirdManage">
<UniqueIdentifier>{5dd82856-782b-4f14-b16a-c8be85c61fda}</UniqueIdentifier>
</Filter>
<Filter Include="AADatabase">
<UniqueIdentifier>{7677ca87-d9f6-4171-9a7c-eb764fdca3cc}</UniqueIdentifier>
</Filter>
<Filter Include="RunThread\multithreading">
<UniqueIdentifier>{860fd055-37f3-4084-aa9a-8edc85426657}</UniqueIdentifier>
</Filter>
<Filter Include="AAAttr">
<UniqueIdentifier>{94eb4459-84a7-449e-8b6b-998d9d3537bd}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<QtRcc Include="Debonding.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
<QtUic Include="Debonding.ui">
<Filter>Resource Files</Filter>
</QtUic>
<QtMoc Include="Debonding.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClCompile Include="Debonding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="GlobalDataCenter.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="GlobalAlarmCenter.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="CassUI.cpp">
<Filter>UIFile\MainInterface</Filter>
</ClCompile>
<ClCompile Include="FdcParamUI.cpp">
<Filter>UIFile\MainInterface</Filter>
</ClCompile>
<ClCompile Include="WorkPlatFormUI.cpp">
<Filter>UIFile\MainInterface</Filter>
</ClCompile>
<ClCompile Include="MachineDrawingUI.cpp">
<Filter>UIFile\MainInterface</Filter>
</ClCompile>
<ClCompile Include="MainInterfaceUI.cpp">
<Filter>UIFile\MainInterface</Filter>
</ClCompile>
<ClCompile Include="MyCassLayerRect.cpp">
<Filter>UIFile\MainInterface</Filter>
</ClCompile>
<ClCompile Include="MyChartView.cpp">
<Filter>UIFile\MainInterface</Filter>
</ClCompile>
<ClCompile Include="OneStepDebugUI.cpp">
<Filter>UIFile\OneStepDebug</Filter>
</ClCompile>
<ClCompile Include="CassToPtUI.cpp">
<Filter>UIFile\OneStepDebug</Filter>
</ClCompile>
<ClCompile Include="PtWorkUI.cpp">
<Filter>UIFile\OneStepDebug</Filter>
</ClCompile>
<ClCompile Include="PtToSaparateUI.cpp">
<Filter>UIFile\OneStepDebug</Filter>
</ClCompile>
<ClCompile Include="SaparateWorkUI.cpp">
<Filter>UIFile\OneStepDebug</Filter>
</ClCompile>
<ClCompile Include="SaparateToClean.cpp">
<Filter>UIFile\OneStepDebug</Filter>
</ClCompile>
<ClCompile Include="CleanUI.cpp">
<Filter>UIFile\OneStepDebug</Filter>
</ClCompile>
<ClCompile Include="CleanToCassUI.cpp">
<Filter>UIFile\OneStepDebug</Filter>
</ClCompile>
<ClCompile Include="CassMappingUI.cpp">
<Filter>UIFile\OneStepDebug</Filter>
</ClCompile>
<ClCompile Include="GugaoUI.cpp">
<Filter>UIFile</Filter>
</ClCompile>
<ClCompile Include="ReadConfigFile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="MyMessageBox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="GlobalFuncCenter.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="GugaoCardManage.cpp">
<Filter>thirdManage</Filter>
</ClCompile>
<ClCompile Include="GlobalObjCenter.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="RunTipUI.cpp">
<Filter>UIFile</Filter>
</ClCompile>
<ClCompile Include="ParamConfigUI.cpp">
<Filter>UIFile</Filter>
</ClCompile>
<ClCompile Include="TransformerUI.cpp">
<Filter>UIFile</Filter>
</ClCompile>
<ClCompile Include="RecipeAttr.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="CassToPtManager.cpp">
<Filter>thirdManage</Filter>
</ClCompile>
<ClCompile Include="RecipeManageUI.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="RecipeAttrUI.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="CassMappingManage.cpp">
<Filter>thirdManage</Filter>
</ClCompile>
<ClCompile Include="PtToSaparateManage.cpp">
<Filter>thirdManage</Filter>
</ClCompile>
<ClCompile Include="SaparateToCleanManage.cpp">
<Filter>thirdManage</Filter>
</ClCompile>
<ClCompile Include="PtWorkManage.cpp">
<Filter>thirdManage</Filter>
</ClCompile>
<ClCompile Include="DatabaseManage.cpp">
<Filter>AADatabase</Filter>
</ClCompile>
<ClCompile Include="CleanToCassManage.cpp">
<Filter>thirdManage</Filter>
</ClCompile>
<ClCompile Include="OneStepCommonFunc.cpp">
<Filter>thirdManage</Filter>
</ClCompile>
<ClCompile Include="SaparateWorkManage.cpp">
<Filter>thirdManage</Filter>
</ClCompile>
<ClCompile Include="CleanWorkManage.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="CleanMachineManage.cpp">
<Filter>thirdManage</Filter>
</ClCompile>
<ClCompile Include="CassToPlatFormThread.cpp">
<Filter>RunThread\multithreading</Filter>
</ClCompile>
<ClCompile Include="CleaningWorkThread.cpp">
<Filter>RunThread\multithreading</Filter>
</ClCompile>
<ClCompile Include="PlatformWorkThread.cpp">
<Filter>RunThread\multithreading</Filter>
</ClCompile>
<ClCompile Include="ReturnCassThread.cpp">
<Filter>RunThread\multithreading</Filter>
</ClCompile>
<ClCompile Include="RunThreadManage.cpp">
<Filter>RunThread\multithreading</Filter>
</ClCompile>
<ClCompile Include="SaparateToCleanThread.cpp">
<Filter>RunThread\multithreading</Filter>
</ClCompile>
<ClCompile Include="SaparateWorkThread.cpp">
<Filter>RunThread\multithreading</Filter>
</ClCompile>
<ClCompile Include="RunActionCommand.cpp">
<Filter>AAAttr</Filter>
</ClCompile>
<ClCompile Include="PlatformToSapatateThread.cpp">
<Filter>RunThread\multithreading</Filter>
</ClCompile>
<ClCompile Include="OneReturnWafer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="GlobalDataCenter.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="GlobalAlarmCenter.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="MachineDrawingUI.h">
<Filter>UIFile\MainInterface</Filter>
</QtMoc>
<QtMoc Include="MainInterfaceUI.h">
<Filter>UIFile\MainInterface</Filter>
</QtMoc>
<QtMoc Include="CassUI.h">
<Filter>UIFile\MainInterface</Filter>
</QtMoc>
<QtMoc Include="FdcParamUI.h">
<Filter>UIFile\MainInterface</Filter>
</QtMoc>
<QtMoc Include="MyCassLayerRect.h">
<Filter>UIFile\MainInterface</Filter>
</QtMoc>
<QtMoc Include="WorkPlatFormUI.h">
<Filter>UIFile\MainInterface</Filter>
</QtMoc>
<QtMoc Include="MyChartView.h">
<Filter>UIFile\MainInterface</Filter>
</QtMoc>
<QtMoc Include="OneStepDebugUI.h">
<Filter>UIFile\OneStepDebug</Filter>
</QtMoc>
<QtMoc Include="CassToPtUI.h">
<Filter>UIFile\OneStepDebug</Filter>
</QtMoc>
<QtMoc Include="PtWorkUI.h">
<Filter>UIFile\OneStepDebug</Filter>
</QtMoc>
<QtMoc Include="PtToSaparateUI.h">
<Filter>UIFile\OneStepDebug</Filter>
</QtMoc>
<QtMoc Include="SaparateWorkUI.h">
<Filter>UIFile\OneStepDebug</Filter>
</QtMoc>
<QtMoc Include="SaparateToClean.h">
<Filter>UIFile\OneStepDebug</Filter>
</QtMoc>
<QtMoc Include="CleanUI.h">
<Filter>UIFile\OneStepDebug</Filter>
</QtMoc>
<QtMoc Include="CleanToCassUI.h">
<Filter>UIFile\OneStepDebug</Filter>
</QtMoc>
<QtMoc Include="CassMappingUI.h">
<Filter>UIFile\OneStepDebug</Filter>
</QtMoc>
<QtMoc Include="GugaoUI.h">
<Filter>UIFile</Filter>
</QtMoc>
<QtMoc Include="ReadConfigFile.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="GlobalFuncCenter.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="GugaoCardManage.h">
<Filter>thirdManage</Filter>
</QtMoc>
<QtMoc Include="GlobalObjCenter.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="RunTipUI.h">
<Filter>UIFile</Filter>
</QtMoc>
<QtMoc Include="ParamConfigUI.h">
<Filter>UIFile</Filter>
</QtMoc>
<QtMoc Include="TransformerUI.h">
<Filter>UIFile</Filter>
</QtMoc>
<QtMoc Include="RecipeAttr.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="CassToPtManager.h">
<Filter>thirdManage</Filter>
</QtMoc>
<QtMoc Include="RecipeManageUI.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="RecipeAttrUI.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="CassMappingManage.h">
<Filter>thirdManage</Filter>
</QtMoc>
<QtMoc Include="PtToSaparateManage.h">
<Filter>thirdManage</Filter>
</QtMoc>
<QtMoc Include="SaparateToCleanManage.h">
<Filter>thirdManage</Filter>
</QtMoc>
<QtMoc Include="PtWorkManage.h">
<Filter>thirdManage</Filter>
</QtMoc>
<QtMoc Include="DatabaseManage.h">
<Filter>AADatabase</Filter>
</QtMoc>
<QtMoc Include="CleanToCassManage.h">
<Filter>thirdManage</Filter>
</QtMoc>
<QtMoc Include="OneStepCommonFunc.h">
<Filter>thirdManage</Filter>
</QtMoc>
<QtMoc Include="SaparateWorkManage.h">
<Filter>thirdManage</Filter>
</QtMoc>
<QtMoc Include="CleanWorkManage.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="CleanMachineManage.h">
<Filter>thirdManage</Filter>
</QtMoc>
<QtMoc Include="CassToPlatFormThread.h">
<Filter>RunThread\multithreading</Filter>
</QtMoc>
<QtMoc Include="CleaningWorkThread.h">
<Filter>RunThread\multithreading</Filter>
</QtMoc>
<QtMoc Include="PlatformWorkThread.h">
<Filter>RunThread\multithreading</Filter>
</QtMoc>
<QtMoc Include="ReturnCassThread.h">
<Filter>RunThread\multithreading</Filter>
</QtMoc>
<QtMoc Include="RunThreadManage.h">
<Filter>RunThread\multithreading</Filter>
</QtMoc>
<QtMoc Include="SaparateToCleanThread.h">
<Filter>RunThread\multithreading</Filter>
</QtMoc>
<QtMoc Include="SaparateWorkThread.h">
<Filter>RunThread\multithreading</Filter>
</QtMoc>
<QtMoc Include="PlatformToSapatateThread.h">
<Filter>RunThread\multithreading</Filter>
</QtMoc>
<QtMoc Include="OneReturnWafer.h">
<Filter>Header Files</Filter>
</QtMoc>
</ItemGroup>
<ItemGroup>
<ClInclude Include="GlobalTypeDefine.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MyMessageBox.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="RunActionCommand.h">
<Filter>AAAttr</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<QtUic Include="CassUI.ui">
<Filter>Form Files\MainInterface</Filter>
</QtUic>
<QtUic Include="FdcParamUI.ui">
<Filter>Form Files\MainInterface</Filter>
</QtUic>
<QtUic Include="MachineDrawingUI.ui">
<Filter>Form Files\MainInterface</Filter>
</QtUic>
<QtUic Include="MainInterfaceUI.ui">
<Filter>Form Files\MainInterface</Filter>
</QtUic>
<QtUic Include="WorkPlatFormUI.ui">
<Filter>Form Files\MainInterface</Filter>
</QtUic>
<QtUic Include="OneStepDebugUI.ui">
<Filter>Form Files\OneStepDebug</Filter>
</QtUic>
<QtUic Include="CassToPtUI.ui">
<Filter>Form Files\OneStepDebug</Filter>
</QtUic>
<QtUic Include="PtWorkUI.ui">
<Filter>Form Files\OneStepDebug</Filter>
</QtUic>
<QtUic Include="PtToSaparateUI.ui">
<Filter>Form Files\OneStepDebug</Filter>
</QtUic>
<QtUic Include="SaparateWorkUI.ui">
<Filter>Form Files\OneStepDebug</Filter>
</QtUic>
<QtUic Include="SaparateToClean.ui">
<Filter>Form Files\OneStepDebug</Filter>
</QtUic>
<QtUic Include="CleanUI.ui">
<Filter>Form Files\OneStepDebug</Filter>
</QtUic>
<QtUic Include="CleanToCassUI.ui">
<Filter>Form Files\OneStepDebug</Filter>
</QtUic>
<QtUic Include="CassMappingUI.ui">
<Filter>Form Files\OneStepDebug</Filter>
</QtUic>
<QtUic Include="GugaoUI.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="TransformerUI.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="ParamConfigUI.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="RunTipUI.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="RecipeManageUI.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="RecipeAttrUI.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="OneReturnWafer.ui">
<Filter>Form Files\OneStepDebug</Filter>
</QtUic>
</ItemGroup>
</Project>

@ -0,0 +1,46 @@
e:\debonding\debonding\debonding\debug\machinedrawingui.obj
e:\debonding\debonding\debonding\debug\workplatformui.obj
e:\debonding\debonding\debonding\debug\saparateworkthread.obj
e:\debonding\debonding\debonding\debug\returncassthread.obj
e:\debonding\debonding\debonding\debug\platformtosapatate.obj
e:\debonding\debonding\debonding\debug\runthreadmanage.obj
e:\debonding\debonding\debonding\debug\main.obj
e:\debonding\debonding\debonding\debug\globaldatacenter.obj
e:\debonding\debonding\debonding\debug\fdcparamui.obj
e:\debonding\debonding\debonding\debug\cassui.obj
e:\debonding\debonding\debonding\debug\globalalarmcenter.obj
e:\debonding\debonding\debonding\debug\debonding.obj
e:\debonding\debonding\debonding\debug\casstoplatformthread.obj
e:\debonding\debonding\debonding\debug\platformworkthread.obj
e:\debonding\debonding\debonding\debug\uic\ui_cassui.h
e:\debonding\debonding\debonding\debug\uic\ui_debonding.h
e:\debonding\debonding\debonding\debug\uic\ui_fdcparamui.h
e:\debonding\debonding\debonding\debug\uic\ui_machinedrawingui.h
e:\debonding\debonding\debonding\debug\uic\ui_maininterfaceui.h
e:\debonding\debonding\debonding\debug\uic\ui_workplatformui.h
e:\debonding\debonding\debonding\debug\rcc\qrc_debonding.cpp
e:\debonding\debonding\debonding\debug\moc\moc_debonding.cpp
e:\debonding\debonding\debonding\debug\moc\moc_casstoplatformthread.cpp
e:\debonding\debonding\debonding\debug\moc\moc_runthreadmanage.cpp
e:\debonding\debonding\debonding\debug\moc\moc_platformworkthread.cpp
e:\debonding\debonding\debonding\debug\moc\moc_platformtosapatate.cpp
e:\debonding\debonding\debonding\debug\moc\moc_saparateworkthread.cpp
e:\debonding\debonding\debonding\debug\moc\moc_returncassthread.cpp
e:\debonding\debonding\debonding\debug\moc\moc_globaldatacenter.cpp
e:\debonding\debonding\debonding\debug\moc\moc_maininterfaceui.cpp
e:\debonding\debonding\debonding\debug\moc\moc_workplatformui.cpp
e:\debonding\debonding\debonding\debug\moc\moc_machinedrawingui.cpp
e:\debonding\debonding\debonding\debug\moc\moc_globalalarmcenter.cpp
e:\debonding\debonding\debonding\debug\moc\moc_cassui.cpp
e:\debonding\debonding\debonding\debug\moc\moc_fdcparamui.cpp
e:\debonding\debonding\debonding\debug\vc140.pdb
e:\debonding\debonding\debonding\debug\debonding.tlog\cl.command.1.tlog
e:\debonding\debonding\debonding\debug\debonding.tlog\cl.read.1.tlog
e:\debonding\debonding\debonding\debug\debonding.tlog\cl.write.1.tlog
e:\debonding\debonding\debonding\debug\debonding.tlog\debonding.write.1u.tlog
e:\debonding\debonding\debonding\debug\debonding.tlog\moc.read.1u.tlog
e:\debonding\debonding\debonding\debug\debonding.tlog\moc.write.1u.tlog
e:\debonding\debonding\debonding\debug\debonding.tlog\rcc.read.1u.tlog
e:\debonding\debonding\debonding\debug\debonding.tlog\rcc.write.1u.tlog
e:\debonding\debonding\debonding\debug\debonding.tlog\uic.read.1u.tlog
e:\debonding\debonding\debonding\debug\debonding.tlog\uic.write.1u.tlog

@ -0,0 +1,17 @@
 uic ParamConfigUI.ui
E:\Debonding\Debonding\Debonding\ParamConfigUI.ui: Warning: The name 'layoutWidget' (QWidget) is already in use, defaulting to 'layoutWidget1'.
E:\Debonding\Debonding\Debonding\ParamConfigUI.ui: Warning: The name 'layoutWidget' (QWidget) is already in use, defaulting to 'layoutWidget2'.
E:\Debonding\Debonding\Debonding\ParamConfigUI.ui: Warning: The name 'layoutWidget' (QWidget) is already in use, defaulting to 'layoutWidget3'.
E:\Debonding\Debonding\Debonding\ParamConfigUI.ui: Warning: The name 'layoutWidget' (QWidget) is already in use, defaulting to 'layoutWidget4'.
Debonding.cpp
ParamConfigUI.cpp
main.cpp
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
moc_Debonding.cpp
moc_ParamConfigUI.cpp
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
Debonding.vcxproj -> E:\Debonding\Debonding\Debug\Debonding.exe
Debonding.vcxproj -> E:\Debonding\Debonding\Debug\Debonding.pdb (Full PDB)

@ -0,0 +1,2 @@
#TargetFrameworkVersion=v4.0:PlatformToolSet=v140:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=8.1
Debug|Win32|E:\Debonding\Debonding\|

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save