From 5b6e648814aa829706cb94e6c44766ee9a6d9f12 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期三, 28 五月 2025 11:06:47 +0800
Subject: [PATCH] 1.机器槽位信息设计(CSlot)
---
SourceCode/Bond/Servo/CFliper.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 55 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/CFliper.cpp b/SourceCode/Bond/Servo/CFliper.cpp
index 0b6c578..7322d95 100644
--- a/SourceCode/Bond/Servo/CFliper.cpp
+++ b/SourceCode/Bond/Servo/CFliper.cpp
@@ -38,6 +38,16 @@
addPin(SERVO::PinType::OUTPUT, _T("Out"));
}
+ // 必须要实现的虚函数,在此初始化Slot信息
+ void CFliper::initSlots()
+ {
+ m_slot[0].enable();
+ m_slot[0].setPosition(m_nID);
+ m_slot[0].setNo(1);
+ m_slot[0].setName("Slot 1(G2)");
+ m_slot[0].setType(MaterialsType::G2);
+ }
+
void CFliper::onTimer(UINT nTimerid)
{
CEquipment::onTimer(nTimerid);
@@ -47,4 +57,49 @@
{
CEquipment::serialize(ar);
}
+
+ void CFliper::getAttributeVector(CAttributeVector& attrubutes)
+ {
+ __super::getAttributeVector(attrubutes);
+ }
+
+ int CFliper::recvIntent(CPin* pPin, CIntent* pIntent)
+ {
+ return __super::recvIntent(pPin, pIntent);
+ }
+
+ BOOL CFliper::glassWillArrive(CGlass* pGlass)
+ {
+ BOOL bRet = __super::glassWillArrive(pGlass);
+ if (!bRet) {
+ return FALSE;
+ }
+
+ return m_glassList.empty();
+ }
+
+ BOOL CFliper::onPreStoredJob(int port, CJobDataB* pJobDataB)
+ {
+ CJobDataS* pJobDataS = getJobDataS(pJobDataB->getCassetteSequenceNo(), pJobDataB->getJobSequenceNo());
+ if (pJobDataS == nullptr) {
+ LOGE("<CFliper-%s>onPreFetchedOutJob,找不到对应的JobDataS(CassetteSequenceNo:%d, JobSequenceNo:%d), 注意排查风险!", m_strName.c_str(),
+ pJobDataB->getCassetteSequenceNo(), pJobDataB->getJobSequenceNo());
+ return FALSE;
+ }
+
+ // 当前不能有任何玻璃,且当前准备进的片是G2
+ Lock();
+ if (!m_glassList.empty()) {
+ Unlock();
+ LOGE("<CFliper-%s>onPreFetchedOutJob,当前机器或单元存在玻璃片,不能进料,请注意风险!", m_strName.c_str());
+ return FALSE;
+ }
+
+ if (pJobDataS->getMaterialsType() != (int)MaterialsType::G2) {
+ LOGE("<CFliper-%s>onPreFetchedOutJob,当前机器或单元只能进G2玻璃片,请注意风险!", m_strName.c_str());
+ return FALSE;
+ }
+
+ return TRUE;
+ }
}
--
Gitblit v1.9.3