From cbe189228810812547d16a3211ab0b174831f609 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 24 三月 2025 11:56:04 +0800
Subject: [PATCH] 1.修复一个闪退问题(Glass列表为空仍要下传导致); 2.在CEquipment派生类中实现限制上游移动(如下在加工且加工数量有限制);
---
SourceCode/Bond/Servo/CVacuumBake.cpp | 10 +++++
SourceCode/Bond/Servo/CFliper.cpp | 10 +++++
SourceCode/Bond/Servo/CLoadPort.h | 1
SourceCode/Bond/Servo/CEFEM.h | 1
SourceCode/Bond/Servo/CLoadPort.cpp | 10 +++++
SourceCode/Bond/Servo/CMeasurement.h | 1
SourceCode/Bond/Servo/CVacuumBake.h | 1
SourceCode/Bond/Servo/CBakeCooling.cpp | 10 +++++
SourceCode/Bond/Servo/CMeasurement.cpp | 10 +++++
SourceCode/Bond/Servo/CAligner.cpp | 10 +++++
SourceCode/Bond/Servo/CBakeCooling.h | 1
SourceCode/Bond/Servo/CEquipment.cpp | 6 ++
SourceCode/Bond/Servo/CAligner.h | 1
SourceCode/Bond/Servo/CEFEM.cpp | 10 +++++
SourceCode/Bond/Servo/CBonder.h | 1
SourceCode/Bond/Servo/CBonder.cpp | 10 +++++
SourceCode/Bond/Servo/CFliper.h | 1
17 files changed, 93 insertions(+), 1 deletions(-)
diff --git a/SourceCode/Bond/Servo/CAligner.cpp b/SourceCode/Bond/Servo/CAligner.cpp
index 6b76fd9..dc4a93b 100644
--- a/SourceCode/Bond/Servo/CAligner.cpp
+++ b/SourceCode/Bond/Servo/CAligner.cpp
@@ -58,4 +58,14 @@
{
return __super::recvIntent(pPin, pIntent);
}
+
+ BOOL CAligner::glassWillArrive(CGlass* pGlass)
+ {
+ BOOL bRet = __super::glassWillArrive(pGlass);
+ if (!bRet) {
+ return FALSE;
+ }
+
+ return m_glassList.empty();
+ }
}
diff --git a/SourceCode/Bond/Servo/CAligner.h b/SourceCode/Bond/Servo/CAligner.h
index 8a6be18..acf53e1 100644
--- a/SourceCode/Bond/Servo/CAligner.h
+++ b/SourceCode/Bond/Servo/CAligner.h
@@ -19,6 +19,7 @@
virtual void serialize(CArchive& ar);
virtual void getAttributeVector(CAttributeVector& attrubutes);
virtual int recvIntent(CPin* pPin, CIntent* pIntent);
+ virtual BOOL glassWillArrive(CGlass* pGlass);
};
}
diff --git a/SourceCode/Bond/Servo/CBakeCooling.cpp b/SourceCode/Bond/Servo/CBakeCooling.cpp
index 1dcbc72..5e374ab 100644
--- a/SourceCode/Bond/Servo/CBakeCooling.cpp
+++ b/SourceCode/Bond/Servo/CBakeCooling.cpp
@@ -58,4 +58,14 @@
{
return __super::recvIntent(pPin, pIntent);
}
+
+ BOOL CBakeCooling::glassWillArrive(CGlass* pGlass)
+ {
+ BOOL bRet = __super::glassWillArrive(pGlass);
+ if (!bRet) {
+ return FALSE;
+ }
+
+ return (m_glassList.size() < 4);
+ }
}
diff --git a/SourceCode/Bond/Servo/CBakeCooling.h b/SourceCode/Bond/Servo/CBakeCooling.h
index 22f3c14..6d85350 100644
--- a/SourceCode/Bond/Servo/CBakeCooling.h
+++ b/SourceCode/Bond/Servo/CBakeCooling.h
@@ -19,6 +19,7 @@
virtual void serialize(CArchive& ar);
virtual void getAttributeVector(CAttributeVector& attrubutes);
virtual int recvIntent(CPin* pPin, CIntent* pIntent);
+ virtual BOOL glassWillArrive(CGlass* pGlass);
};
}
diff --git a/SourceCode/Bond/Servo/CBonder.cpp b/SourceCode/Bond/Servo/CBonder.cpp
index f9f27b9..1bb185f 100644
--- a/SourceCode/Bond/Servo/CBonder.cpp
+++ b/SourceCode/Bond/Servo/CBonder.cpp
@@ -57,4 +57,14 @@
{
return __super::recvIntent(pPin, pIntent);
}
+
+ BOOL CBonder::glassWillArrive(CGlass* pGlass)
+ {
+ BOOL bRet = __super::glassWillArrive(pGlass);
+ if (!bRet) {
+ return FALSE;
+ }
+
+ return m_glassList.empty();
+ }
}
diff --git a/SourceCode/Bond/Servo/CBonder.h b/SourceCode/Bond/Servo/CBonder.h
index 1785a5c..e6f9843 100644
--- a/SourceCode/Bond/Servo/CBonder.h
+++ b/SourceCode/Bond/Servo/CBonder.h
@@ -19,6 +19,7 @@
virtual void serialize(CArchive& ar);
virtual void getAttributeVector(CAttributeVector& attrubutes);
virtual int recvIntent(CPin* pPin, CIntent* pIntent);
+ virtual BOOL glassWillArrive(CGlass* pGlass);
};
}
diff --git a/SourceCode/Bond/Servo/CEFEM.cpp b/SourceCode/Bond/Servo/CEFEM.cpp
index e68f73f..6b0548f 100644
--- a/SourceCode/Bond/Servo/CEFEM.cpp
+++ b/SourceCode/Bond/Servo/CEFEM.cpp
@@ -55,4 +55,14 @@
{
return __super::recvIntent(pPin, pIntent);
}
+
+ BOOL CEFEM::glassWillArrive(CGlass* pGlass)
+ {
+ BOOL bRet = __super::glassWillArrive(pGlass);
+ if (!bRet) {
+ return FALSE;
+ }
+
+ return m_glassList.empty();
+ }
}
diff --git a/SourceCode/Bond/Servo/CEFEM.h b/SourceCode/Bond/Servo/CEFEM.h
index 76b0ded..35d8db2 100644
--- a/SourceCode/Bond/Servo/CEFEM.h
+++ b/SourceCode/Bond/Servo/CEFEM.h
@@ -19,6 +19,7 @@
virtual void serialize(CArchive& ar);
virtual void getAttributeVector(CAttributeVector& attrubutes);
virtual int recvIntent(CPin* pPin, CIntent* pIntent);
+ virtual BOOL glassWillArrive(CGlass* pGlass);
};
}
diff --git a/SourceCode/Bond/Servo/CEquipment.cpp b/SourceCode/Bond/Servo/CEquipment.cpp
index c24767e..4baffcc 100644
--- a/SourceCode/Bond/Servo/CEquipment.cpp
+++ b/SourceCode/Bond/Servo/CEquipment.cpp
@@ -202,7 +202,7 @@
}
for (auto item : m_glassList) {
- attrubutes.addAttribute(new CAttribute("Panel",
+ attrubutes.addAttribute(new CAttribute("Glass",
item->getID().c_str(), ""));
}
}
@@ -524,6 +524,10 @@
// 模拟取出第一张Panel,传送到下一环节
Lock();
+ if (m_glassList.empty()) {
+ Unlock();
+ return -2;
+ }
CGlass* pContext = m_glassList.front();
pContext->addRef();
diff --git a/SourceCode/Bond/Servo/CFliper.cpp b/SourceCode/Bond/Servo/CFliper.cpp
index cbf9a53..acd7654 100644
--- a/SourceCode/Bond/Servo/CFliper.cpp
+++ b/SourceCode/Bond/Servo/CFliper.cpp
@@ -57,4 +57,14 @@
{
return __super::recvIntent(pPin, pIntent);
}
+
+ BOOL CFliper::glassWillArrive(CGlass* pGlass)
+ {
+ BOOL bRet = __super::glassWillArrive(pGlass);
+ if (!bRet) {
+ return FALSE;
+ }
+
+ return m_glassList.empty();
+ }
}
diff --git a/SourceCode/Bond/Servo/CFliper.h b/SourceCode/Bond/Servo/CFliper.h
index 2bb285f..a010953 100644
--- a/SourceCode/Bond/Servo/CFliper.h
+++ b/SourceCode/Bond/Servo/CFliper.h
@@ -19,6 +19,7 @@
virtual void serialize(CArchive& ar);
virtual void getAttributeVector(CAttributeVector& attrubutes);
virtual int recvIntent(CPin* pPin, CIntent* pIntent);
+ virtual BOOL glassWillArrive(CGlass* pGlass);
};
}
diff --git a/SourceCode/Bond/Servo/CLoadPort.cpp b/SourceCode/Bond/Servo/CLoadPort.cpp
index feef8e9..b881e5a 100644
--- a/SourceCode/Bond/Servo/CLoadPort.cpp
+++ b/SourceCode/Bond/Servo/CLoadPort.cpp
@@ -76,4 +76,14 @@
return __super::outputGlass(port);
}
+
+ BOOL CLoadPort::glassWillArrive(CGlass* pGlass)
+ {
+ BOOL bRet = __super::glassWillArrive(pGlass);
+ if (!bRet) {
+ return FALSE;
+ }
+
+ return (m_glassList.size() < 8);
+ }
}
diff --git a/SourceCode/Bond/Servo/CLoadPort.h b/SourceCode/Bond/Servo/CLoadPort.h
index 355bd1d..3fa8afd 100644
--- a/SourceCode/Bond/Servo/CLoadPort.h
+++ b/SourceCode/Bond/Servo/CLoadPort.h
@@ -19,6 +19,7 @@
virtual void serialize(CArchive& ar);
virtual void getAttributeVector(CAttributeVector& attrubutes);
virtual int recvIntent(CPin* pPin, CIntent* pIntent);
+ virtual BOOL glassWillArrive(CGlass* pGlass);
public:
virtual int outputGlass(int port);
diff --git a/SourceCode/Bond/Servo/CMeasurement.cpp b/SourceCode/Bond/Servo/CMeasurement.cpp
index 217e092..34ff4e6 100644
--- a/SourceCode/Bond/Servo/CMeasurement.cpp
+++ b/SourceCode/Bond/Servo/CMeasurement.cpp
@@ -54,4 +54,14 @@
{
return __super::recvIntent(pPin, pIntent);
}
+
+ BOOL CMeasurement::glassWillArrive(CGlass* pGlass)
+ {
+ BOOL bRet = __super::glassWillArrive(pGlass);
+ if (!bRet) {
+ return FALSE;
+ }
+
+ return m_glassList.empty();
+ }
}
diff --git a/SourceCode/Bond/Servo/CMeasurement.h b/SourceCode/Bond/Servo/CMeasurement.h
index 9b13681..28812a1 100644
--- a/SourceCode/Bond/Servo/CMeasurement.h
+++ b/SourceCode/Bond/Servo/CMeasurement.h
@@ -19,6 +19,7 @@
virtual void serialize(CArchive& ar);
virtual void getAttributeVector(CAttributeVector& attrubutes);
virtual int recvIntent(CPin* pPin, CIntent* pIntent);
+ virtual BOOL glassWillArrive(CGlass* pGlass);
};
}
diff --git a/SourceCode/Bond/Servo/CVacuumBake.cpp b/SourceCode/Bond/Servo/CVacuumBake.cpp
index 3a8a984..556d029 100644
--- a/SourceCode/Bond/Servo/CVacuumBake.cpp
+++ b/SourceCode/Bond/Servo/CVacuumBake.cpp
@@ -57,4 +57,14 @@
{
return __super::recvIntent(pPin, pIntent);
}
+
+ BOOL CVacuumBake::glassWillArrive(CGlass* pGlass)
+ {
+ BOOL bRet = __super::glassWillArrive(pGlass);
+ if (!bRet) {
+ return FALSE;
+ }
+
+ return m_glassList.empty();
+ }
}
diff --git a/SourceCode/Bond/Servo/CVacuumBake.h b/SourceCode/Bond/Servo/CVacuumBake.h
index 6bd084e..f8b4bff 100644
--- a/SourceCode/Bond/Servo/CVacuumBake.h
+++ b/SourceCode/Bond/Servo/CVacuumBake.h
@@ -19,6 +19,7 @@
virtual void serialize(CArchive& ar);
virtual void getAttributeVector(CAttributeVector& attrubutes);
virtual int recvIntent(CPin* pPin, CIntent* pIntent);
+ virtual BOOL glassWillArrive(CGlass* pGlass);
};
}
--
Gitblit v1.9.3