From 0ac6ae25833b16d25e5380176f66d35aa947f85c Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期四, 05 六月 2025 17:17:05 +0800
Subject: [PATCH] 1.EFEM更新信号到LoadPort, Robot, Aligner, Fliper 2.搬送条件,增加Upstream Inline、Upstream Trouble、Interlock、Send Able信号的检测。

---
 SourceCode/Bond/Servo/CEquipment.cpp |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/CEquipment.cpp b/SourceCode/Bond/Servo/CEquipment.cpp
index 43067d2..ad72643 100644
--- a/SourceCode/Bond/Servo/CEquipment.cpp
+++ b/SourceCode/Bond/Servo/CEquipment.cpp
@@ -370,6 +370,7 @@
 		for (int i = 0; i < 8; i++) {
 			m_bLinkSignal[i][SIGNAL_UPSTREAM_INLINE] = isBitOn(pszData, size, index + 0);
 			m_bLinkSignal[i][SIGNAL_UPSTREAM_TROUBLE] = isBitOn(pszData, size, index + 1);
+			m_bLinkSignal[i][SIGNAL_INTERLOCK] = isBitOn(pszData, size, index + 2);
 			m_bLinkSignal[i][SIGNAL_SEND_ABLE] = isBitOn(pszData, size, index + 3);
 			index += 0x40;
 		}		 
@@ -605,6 +606,14 @@
 		if (path >= PATH_MAX) return;
 		if (signal >= SIGNAL_MAX) return;
 		m_bLinkSignal[path][signal] = bOn;
+	}
+
+	void CEquipment::setLinkSignalBlock(unsigned int path, BOOL* pSignal)
+	{
+		if (path >= PATH_MAX) return;
+		for (int i = 0; i < SIGNAL_MAX; i++) {
+			m_bLinkSignal[path][i] = pSignal[i];
+		}
 	}
 
 	int CEquipment::onStepEvent(CStep* pStep, int code)
@@ -1139,6 +1148,10 @@
 			if (m_slot[i].isLock()) continue;
 			CGlass* pGlass = (CGlass*)m_slot[i].getContext();
 			if (pGlass == nullptr) continue;
+			if(!m_bLinkSignal[i][SIGNAL_UPSTREAM_INLINE]
+				|| m_bLinkSignal[i][SIGNAL_UPSTREAM_TROUBLE]
+				|| !m_bLinkSignal[i][SIGNAL_INTERLOCK]
+				|| !m_bLinkSignal[i][SIGNAL_SEND_ABLE] ) continue;
 
 			MaterialsType glassType = pGlass->getType();
 			if (glassType == MaterialsType::G1 && putSlotType == MaterialsType::G2) continue;

--
Gitblit v1.9.3