From e53508d682792915e26ff02b10f5f2f9bf93d959 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期一, 04 八月 2025 18:23:54 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang

---
 SourceCode/Bond/Servo/Model.cpp |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/SourceCode/Bond/Servo/Model.cpp b/SourceCode/Bond/Servo/Model.cpp
index e00949f..70685aa 100644
--- a/SourceCode/Bond/Servo/Model.cpp
+++ b/SourceCode/Bond/Servo/Model.cpp
@@ -7,6 +7,7 @@
 #include "AlarmManager.h"
 #include "CGlassPool.h"
 #include "TransferManager.h"
+#include "RecipeManager.h"
 
 
 CModel::CModel()
@@ -137,6 +138,19 @@
 			m_master.enableAlarmReport(bEnable);
 		}
 	};
+	listener.onQueryPPIDList = [&](void* pFrom) ->std::vector<std::string> {
+		std::vector<std::string> ppids;
+		auto temp = RecipeManager::getInstance().getAllPPID();
+		for (auto item : temp) {
+			if (item.length() > PPID_NAME_MAX) {
+				ppids.push_back(item.substr(0, PPID_NAME_MAX));
+			}
+			else {
+				ppids.push_back(item);
+			}
+		}
+		return ppids;
+	};
 	m_hsmsPassive.setListener(listener);
 	m_hsmsPassive.setEquipmentModelType((LPTSTR)(LPCTSTR)strModeType);
 	m_hsmsPassive.setSoftRev((LPTSTR)(LPCTSTR)strSoftRev);
@@ -148,6 +162,8 @@
 	m_hsmsPassive.loadReports((LPTSTR)(LPCTSTR)strVarialbleFile);
 	strVarialbleFile.Format(_T("%s\\CollectionEventList.txt"), (LPTSTR)(LPCTSTR)m_strWorkDir);
 	m_hsmsPassive.loadCollectionEvents((LPTSTR)(LPCTSTR)strVarialbleFile);
+	strVarialbleFile.Format(_T("%s\\HsmsPassive.cache"), (LPTSTR)(LPCTSTR)m_strWorkDir);
+	m_hsmsPassive.loadCacheFromFile(strVarialbleFile);
 
 
 	SERVO::MasterListener masterListener;
@@ -311,9 +327,9 @@
 		notifyPtrAndInt(RX_CODE_EQ_ROBOT_TASK, pTask, nullptr, code);
 
 	};
-	masterListener.onLoadPortInUse = [&] (void* pMaster, SERVO::CEquipment* pEquipment, short scanMap) {
-		LOGE("<CModel>onLoadPortInUse. scanMap = %d", scanMap);
-		notifyPtr(RX_CODE_LOADPORT_INUSE, pEquipment);
+	masterListener.onLoadPortStatusChanged = [&] (void* pMaster, SERVO::CEquipment* pEquipment, short status, __int64 data) {
+		LOGE("<CModel>onLoadPortStatusChanged. status = %d", status);
+		notifyPtr(RX_CODE_LOADPORT_STATUS_CHANGED, pEquipment);
 	};
 	m_master.setListener(masterListener);
 
@@ -337,6 +353,7 @@
 
 int CModel::term()
 {
+	m_hsmsPassive.saveCache();
 	m_hsmsPassive.term();
 	CLog::GetLog()->SetOnLogCallback(nullptr);
 	m_master.term();

--
Gitblit v1.9.3