From 22f2984276ff75433ebeab877c96b48905826e6c Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期五, 06 二月 2026 16:51:25 +0800
Subject: [PATCH] 1.Slot防护

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

diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 707f808..492e813 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -3055,6 +3055,20 @@
 			slotProcess = jobExistence[0];
 		}
 
+		bool hasExistence = false;
+		for (short w : jobExistence) {
+			if (w != 0) { hasExistence = true; break; }
+		}
+		const int portStatus = pPort->getPortStatus();
+		if (!hasExistence) {
+			LOGE("ProcessStart blocked (ProceedWithCarrier): no JobExistence map (port=%u, portStatus=%d, scanMap=%d, cassetteId=%s).",
+				port + 1, portStatus, scanMap, pPort->getCassetteId().c_str());
+			return -2;
+		}
+		if (portStatus != PORT_INUSE) {
+			LOGW("ProcessStart warning (ProceedWithCarrier): port status is %d (expected INUSE).", portStatus);
+		}
+
 		pPort->sendCassetteCtrlCmd(CCC_PROCESS_START, jobExistence, 12, slotProcess, jobCount, nullptr, nullptr);
 		return 0;
 	}

--
Gitblit v1.9.3