From b7d98aad7e8728c5a41c6fab5a21b6c633042527 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期六, 13 九月 2025 11:43:13 +0800
Subject: [PATCH] Merge branch 'master' into liuyang

---
 SourceCode/Bond/Servo/CMaster.cpp |   46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index e93c06e..0925933 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -2076,7 +2076,7 @@
 		pTarSlot = pTarEq->getAvailableSlotForGlass(primaryType);
 		pSrcSlot = pSrcEq->getProcessedSlot(primaryType, bJobMode);
 		if (m_nTestFlag == 1) LOGD("createTransferTask 003 %x, %x", pTarSlot, pSrcSlot);
-		if (pSrcSlot == nullptr || nullptr == pTarSlot && secondaryType != SERVO::MaterialsType::G0) {
+		if ((pSrcSlot == nullptr || nullptr == pTarSlot) && secondaryType != SERVO::MaterialsType::G0) {
 			pTarSlot = pTarEq->getAvailableSlotForGlass(secondaryType);
 			pSrcSlot = pSrcEq->getProcessedSlot(secondaryType, bJobMode);
 		}
@@ -2782,4 +2782,48 @@
 			m_strLastError = "AOI检测未通过.";
 		}
 	}
+
+	bool CMaster::moveGlassToBuf(int eqid, int slotNo)
+	{
+		CEquipment* pEquipment = getEquipment(eqid);
+		if (pEquipment == nullptr) return false;
+
+		CSlot* pSlot = pEquipment->getSlotWithNo(slotNo);
+		if (pSlot == nullptr) return false;
+
+		CGlass* pGlass = (CGlass*)pSlot->getContext();
+		m_bufGlass.push_back(pGlass);
+		pGlass->addRef();
+		pSlot->setContext(nullptr);
+
+		m_bDataModify = TRUE;
+		if (m_listener.onEqDataChanged != nullptr) {
+			m_listener.onEqDataChanged(this, pEquipment, 0);
+		}
+
+		return true;
+	}
+
+	bool CMaster::moveGlassToSlot(int eqid, int slotNo)
+	{
+		CEquipment* pEquipment = getEquipment(eqid);
+		if (pEquipment == nullptr) return false;
+
+		CSlot* pSlot = pEquipment->getSlotWithNo(slotNo);
+		if (pSlot == nullptr) return false;
+		if (m_bufGlass.empty()) return false;
+
+		CGlass* pGlass = m_bufGlass.front();
+		m_bufGlass.pop_front();
+		if (pGlass == nullptr) return false;
+		pSlot->setContext(pGlass);
+		pGlass->release();
+
+		m_bDataModify = TRUE;
+		if (m_listener.onEqDataChanged != nullptr) {
+			m_listener.onEqDataChanged(this, pEquipment, 0);
+		}
+
+		return true;
+	}
 }

--
Gitblit v1.9.3