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/PortConfigurationDlg.cpp |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/PortConfigurationDlg.cpp b/SourceCode/Bond/Servo/PortConfigurationDlg.cpp
index 5b21fda..2de5acd 100644
--- a/SourceCode/Bond/Servo/PortConfigurationDlg.cpp
+++ b/SourceCode/Bond/Servo/PortConfigurationDlg.cpp
@@ -484,6 +484,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: no JobExistence map (port=%d, portStatus=%d, scanMap=%d, cassetteId=%s).",
+            selPort + 1, portStatus, scanMap, pPort->getCassetteId().c_str());
+        return;
+    }
+    if (portStatus != PORT_INUSE) {
+        LOGW("ProcessStart warning: port status is %d (expected INUSE).", portStatus);
+    }
+
     int ret = pPort->sendCassetteCtrlCmd(cmd, jobExistence, 12, slotProcess, jobCount, nullptr,
         [selPort](int code) -> int {
             if (code == WOK) {

--
Gitblit v1.9.3