From 6b6297c6fc0aa5c059d35732c7ee22ebca93967f Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期三, 14 一月 2026 15:43:40 +0800
Subject: [PATCH] 1.修复以下问题: ProceedWithCarrier 直接发 CCC_PROCESS_START:CModel::onCarrierAction 在 CompareMapsBeforeProceeding 关闭时,收到 ProceedWithCarrier 就调用 master.proceedWithCarrier(仅发送 Cassette Process Start,不校验 PJ/CJ 是否存在、SlotMap 是否验通过)。若 Host 流程异常(未下 PJ/CJ)或本地尚未准备好,会把设备推进加工态但无作业可跑。

---
 SourceCode/Bond/Servo/CLoadPort.h |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/SourceCode/Bond/Servo/CLoadPort.h b/SourceCode/Bond/Servo/CLoadPort.h
index 523ab69..1fb70d7 100644
--- a/SourceCode/Bond/Servo/CLoadPort.h
+++ b/SourceCode/Bond/Servo/CLoadPort.h
@@ -1,4 +1,4 @@
-#pragma once
+锘�#pragma once
 #include "CEquipment.h"
 #include "ServoCommo.h"
 
@@ -39,6 +39,7 @@
 		void localAutoChangeEnable(BOOL bEnable);
 		short getScanCassetteMap();
 		short getDownloadCassetteMap();
+		void setDownloadCassetteMap(short map);
 
 	public:
 		short getNextCassetteSequenceNo();
@@ -55,6 +56,8 @@
 		int getPortStatus();
 		int getCassetteSequenceNo();
 		std::string& getCassetteId();
+		// Simulation helper: allow setting CarrierID when no EFEM is connected.
+		void simulateSetCassetteId(const char* pszCarrierId);
 		int getLoadingCassetteType();
 		int getQTimeFlag();
 		int getCassetteMappingState();
@@ -85,6 +88,7 @@
 			ONWRITED onWritedBlock);
 		CStep* getCassetteCtrlCmdStep();
 		void setCompareMapsBeforeProceeding(BOOL bCompare);
+		BOOL isCompareMapsBeforeProceeding() const;
 
 	private:
 		int decodePortStatusReport(CStep* pStep, const char* pszData, size_t size);
@@ -100,8 +104,8 @@
 		CPortStatusReport m_portStatusReport;
 		int m_nNextCassetteSequenceNo;
 
-		// 在开始工艺前是否先需要先比较map
+		// 鍦ㄥ紑濮嬪伐鑹哄墠鏄惁鍏堥渶瑕佸厛姣旇緝map
 		BOOL m_isCompareMapsBeforeProceeding;
+		short m_downloadCassetteMap;
 	};
 }
-

--
Gitblit v1.9.3