From 7a20b6f44d2ea3f23ef8d228ec4c1424925e5dfb Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 22 八月 2025 17:55:28 +0800
Subject: [PATCH] 1.增加Job模式,如果不是Job模式,沿用原来的调度方式,否则为批处理模式;

---
 SourceCode/Bond/Servo/CMaster.cpp |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index e01b180..b10d2f6 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -55,6 +55,7 @@
 		m_pActiveRobotTask = nullptr;
 		m_nLastError = 0;
 		m_isCompareMapsBeforeProceeding = FALSE;
+		m_bJobMode = FALSE;
 		m_bEnableEventReport = true;
 		m_bEnableAlarmReport = true;
 		m_bContinuousTransfer = false;
@@ -684,7 +685,7 @@
 					if (!rmd.armState[0] && pLoadPorts[s]->isEnable()
 						&& (pt == PortType::Loading || pt == PortType::Both)
 						&& pLoadPorts[s]->getPortStatus() == PORT_INUSE) {
-						m_pActiveRobotTask = createTransferTask(pLoadPorts[s], pAligner, primaryType, secondaryType);
+						m_pActiveRobotTask = createTransferTask(pLoadPorts[s], pAligner, primaryType, secondaryType, m_bJobMode);
 						if (m_pActiveRobotTask != nullptr) {
 							pEFEM->setContext(m_pActiveRobotTask->getContext());
 							goto PORT_GET;
@@ -1567,7 +1568,7 @@
 	static int taskSeqNo = 0;
 	CRobotTask* CMaster::createTransferTask(CEquipment* pSrcEq, CEquipment* pTarEq,
 		MaterialsType primaryType/* = MaterialsType::G1*/, MaterialsType secondaryType/* = MaterialsType::G2*/,
-		int armNo/* = 1*/)
+		int armNo/* = 1*/, BOOL bJobMode/* = FALSE*/)
 	{
 		if (!pSrcEq->IsEnabled()) { 
 			return nullptr;
@@ -1576,10 +1577,10 @@
 		CRobotTask* pTask = nullptr;
 		CSlot* pSrcSlot, * pTarSlot;
 		pTarSlot = pTarEq->getAvailableSlotForGlass(primaryType);
-		pSrcSlot = pSrcEq->getProcessedSlot(primaryType);
+		pSrcSlot = pSrcEq->getProcessedSlot(primaryType, bJobMode);
 		if (pSrcSlot == nullptr || nullptr == pTarSlot) {
 			pTarSlot = pTarEq->getAvailableSlotForGlass(secondaryType);
-			pSrcSlot = pSrcEq->getProcessedSlot(secondaryType);
+			pSrcSlot = pSrcEq->getProcessedSlot(secondaryType, bJobMode);
 		}
 
 
@@ -1821,6 +1822,11 @@
 		m_isCompareMapsBeforeProceeding = bCompare;
 	}
 
+	void CMaster::setJobMode(BOOL bJobMode)
+	{
+		m_bJobMode = bJobMode;
+	}
+
 	void CMaster::datetimeSync(SYSTEMTIME& time)
 	{
 		for (auto item : m_listEquipment) {

--
Gitblit v1.9.3