From a2209cc432cb9c80779d83e51ef090f782e8404a Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期四, 14 八月 2025 17:30:52 +0800
Subject: [PATCH] 1.Create PJ功能实现;

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

diff --git a/SourceCode/Bond/Servo/Model.cpp b/SourceCode/Bond/Servo/Model.cpp
index 6cc7531..260c4fc 100644
--- a/SourceCode/Bond/Servo/Model.cpp
+++ b/SourceCode/Bond/Servo/Model.cpp
@@ -175,6 +175,12 @@
 			return CAACK_5;
 			LOGI("<Model>onCarrierAction %d, %s, %d, %d", DATAID, pszCarrierAction, pszCarrierId, PTN);
 	};
+	listener.onPRJobMultiCreate = [&](void* pFrom, std::vector<SERVO::CProcessJob*>& pjs) -> int {
+		for (auto p : pjs) {
+			LOGI("<Model>onPRJobMultiCreate %s %s", p->id().c_str(), p->recipeSpec().c_str());
+		}
+		return m_master.setProcessJobs(pjs);
+	};
 	m_hsmsPassive.setListener(listener);
 	m_hsmsPassive.setEquipmentModelType((LPTSTR)(LPCTSTR)strModeType);
 	m_hsmsPassive.setSoftRev((LPTSTR)(LPCTSTR)strSoftRev);
@@ -353,9 +359,20 @@
 	};
 	masterListener.onLoadPortStatusChanged = [&] (void* pMaster, SERVO::CEquipment* pEquipment, short status, __int64 data) {
 		LOGE("<CModel>onLoadPortStatusChanged. status = %d", status);
+		if (status == PORT_INUSE) {
+			SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
+			if (pLoadPort != nullptr) {
+				m_hsmsPassive.setVariableValue("CarrierID", pLoadPort->getCassetteId().c_str());
+			}
+			m_hsmsPassive.requestEventReportSend_CarrierID_Readed();
+		}
 		notifyPtr(RX_CODE_LOADPORT_STATUS_CHANGED, pEquipment);
 	};
+	masterListener.onCTRoundEnd = [&](void* pMaster, int round) {
+		m_configuration.setContinuousTransferCount(round);
+	};
 	m_master.setListener(masterListener);
+	m_master.setContinuousTransferCount(m_configuration.getContinuousTransferCount());
 
 
 	// master 设置缓存文件

--
Gitblit v1.9.3