From 6c373f004d79b28c735bbee2bd391bd412270535 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期五, 09 一月 2026 15:58:51 +0800
Subject: [PATCH] 完成统一 PortStateChange 事件与变量维护
---
SourceCode/Bond/Servo/Model.cpp | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/SourceCode/Bond/Servo/Model.cpp b/SourceCode/Bond/Servo/Model.cpp
index ad932b1..3f03a3d 100644
--- a/SourceCode/Bond/Servo/Model.cpp
+++ b/SourceCode/Bond/Servo/Model.cpp
@@ -490,8 +490,19 @@
const int eqId = (pEquipment != nullptr) ? pEquipment->getID() : 0;
const short prevStatus = s_prevPortStatus[eqId];
s_prevPortStatus[eqId] = status;
+ SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
+
+ // Unified PortStateChange event + SV maintenance
+ if (pLoadPort != nullptr) {
+ m_hsmsPassive.withVariableLock([&] {
+ m_hsmsPassive.setVariableValue("PortTransferState", (__int64)status); // maintain SVID=100
+ m_hsmsPassive.setVariableValue("PortStateChangePortId", pLoadPort->getID());
+ m_hsmsPassive.setVariableValue("PortState", (__int64)status);
+ m_hsmsPassive.requestEventReportSend("PortStateChange");
+ });
+ }
+
if (status == PORT_INUSE) {
- SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
m_hsmsPassive.withVariableLock([&] {
if (pLoadPort != nullptr) {
m_hsmsPassive.setVariableValue("CarrierID", pLoadPort->getCassetteId().c_str());
--
Gitblit v1.9.3