From 90ae1c3db92833354814484e65f8cd2eef1f5f3e Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期三, 30 七月 2025 15:14:20 +0800
Subject: [PATCH] 1.配方列表获取完善;

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

diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 615a7fd..6bcda0c 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -548,15 +548,11 @@
 					LOGI("Arm1 %s, Arm2 %s.", rmd.armState[0] ? _T("不可用") : _T("可用"),
 						rmd.armState[1] ? _T("不可用") : _T("可用"));
 				}
-				CEquipment* pEqTar[] = { pVacuumBake, pFliper };
-				if (primaryType == MaterialsType::G2) {
-					pEqTar[0] = pFliper;
-					pEqTar[1] = pVacuumBake;
-				}
 				for (int s = 0; s < 4; s++) {
+					PortType pt = pLoadPorts[s]->getPortType();
 					if (!rmd.armState[0] && pLoadPorts[s]->isEnable()
-						&& pLoadPorts[s]->getPortType() == PortType::Unloading
-						&& pLoadPorts[s]->getPortMode() == PortMode::ReadyToUnload) {
+						&& (pt == PortType::Unloading || pt == PortType::Both)
+						&& pLoadPorts[s]->getPortStatus() == PORT_INUSE) {
 						m_pActiveRobotTask = createTransferTask(pMeasurement, pLoadPorts[s], primaryType, secondaryType);
 						if (m_pActiveRobotTask != nullptr) {
 							goto PORT_PUT;
@@ -649,9 +645,10 @@
 
 				// LoadPort -> Aligner
 				for (int s = 0; s < 4; s++) {
+					PortType pt = pLoadPorts[s]->getPortType();
 					if (!rmd.armState[0] && pLoadPorts[s]->isEnable()
-						&& pLoadPorts[s]->getPortType() == PortType::Loading
-						&& pLoadPorts[s]->getPortMode() == PortMode::ReadyToLoad) {
+						&& (pt == PortType::Loading || pt == PortType::Both)
+						&& pLoadPorts[s]->getPortStatus() == PORT_INUSE) {
 						m_pActiveRobotTask = createTransferTask(pLoadPorts[s], pAligner, primaryType, secondaryType);
 						if (m_pActiveRobotTask != nullptr) {
 							pEFEM->setContext(m_pActiveRobotTask->getContext());
@@ -891,10 +888,10 @@
 			LOGE("<Master-%s>Port InUse, map(%d!=%d)不一致,请检查。",
 				((CEquipment*)pEquipment)->getName().c_str(), scanMap, downMap);
 		};
-		listener.onPortInUse = [&](void* pEquipment, short scanMap) {
-			LOGE("<Master-%s>Port InUse。scanMap=%d", ((CEquipment*)pEquipment)->getName().c_str(), scanMap);
-			if (m_listener.onLoadPortInUse != nullptr) {
-				m_listener.onLoadPortInUse(this, (CEquipment*)pEquipment, scanMap);
+		listener.onPortStatusChanged = [&](void* pEquipment, short status, __int64 data) {
+			LOGE("<Master-%s>Port InUse。status=%d, data=%lld", ((CEquipment*)pEquipment)->getName().c_str(), status);
+			if (m_listener.onLoadPortStatusChanged != nullptr) {
+				m_listener.onLoadPortStatusChanged(this, (CEquipment*)pEquipment, status, data);
 			}
 		};
 		pEquipment->setListener(listener);

--
Gitblit v1.9.3