From c7a412c515aa2344fa776f4692d8f4a7607b3de6 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期五, 12 十二月 2025 16:27:31 +0800
Subject: [PATCH] 1.InAccess_2_Complete(Ready to Release)上报;

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

diff --git a/SourceCode/Bond/Servo/Model.cpp b/SourceCode/Bond/Servo/Model.cpp
index 49d791e..310da04 100644
--- a/SourceCode/Bond/Servo/Model.cpp
+++ b/SourceCode/Bond/Servo/Model.cpp
@@ -9,6 +9,7 @@
 #include "TransferManager.h"
 #include "RecipeManager.h"
 #include "GlassLogDb.h"
+#include <map>
 
 
 CModel::CModel()
@@ -401,6 +402,10 @@
 	};
 	masterListener.onLoadPortStatusChanged = [&] (void* pMaster, SERVO::CEquipment* pEquipment, short status, __int64 data) {
 		LOGE("<CModel>onLoadPortStatusChanged. status = %d", status);
+		static std::map<int, short> s_prevPortStatus;
+		const int eqId = (pEquipment != nullptr) ? pEquipment->getID() : 0;
+		const short prevStatus = s_prevPortStatus[eqId];
+		s_prevPortStatus[eqId] = status;
 		if (status == PORT_INUSE) {
 			SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
 			if (pLoadPort != nullptr) {
@@ -426,6 +431,10 @@
 			SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
 			if (pLoadPort != nullptr) {
 				m_hsmsPassive.setVariableValue("UnloadReadyPortId", pLoadPort->getID());
+				if (prevStatus == PORT_INUSE) {
+					m_hsmsPassive.setVariableValue("ReadyToReleasePortId", pLoadPort->getID());
+					m_hsmsPassive.requestEventReportSend_Port_Ready_To_Release();
+				}
 			}
 			m_hsmsPassive.requestEventReportSend_Port_Unload_Ready();
 		}

--
Gitblit v1.9.3