From b71bd05e422437b998bf367c5a28bb8455400c78 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 09 六月 2025 15:59:10 +0800
Subject: [PATCH] 1.LoadPort数据(PortType, PortMode等)的存储和还原; 2.Measurement -> LoadPort物流调度逻辑实现;

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

diff --git a/SourceCode/Bond/Servo/CPortStatusReport.cpp b/SourceCode/Bond/Servo/CPortStatusReport.cpp
index 6b2b7ca..03864e2 100644
--- a/SourceCode/Bond/Servo/CPortStatusReport.cpp
+++ b/SourceCode/Bond/Servo/CPortStatusReport.cpp
@@ -176,6 +176,34 @@
 			std::to_string(m_nCassetteStatus).c_str(), "", weight++));
 	}
 
+	void CPortStatusReport::serialize(CArchive& ar)
+	{
+		if (ar.IsStoring()) {
+			ar << m_nPortStatus;
+			ar << m_nCassetteSequenceNo;
+			WriteString(ar, m_strCassetteID);
+			for (int i = 0; i < 12; i++) {
+				ar << m_nJobExistenceSlot[i];
+			}
+			ar << m_nLoadingCassetteType;
+			ar << m_nQTimeFlag;
+			ar << m_nCassetteMappingState;
+			ar << m_nCassetteStatus;
+		}
+		else {
+			ar >> m_nPortStatus;
+			ar >> m_nCassetteSequenceNo;
+			ReadString(ar, m_strCassetteID);
+			for (int i = 0; i < 12; i++) {
+				ar >> m_nJobExistenceSlot[i];
+			}
+			ar >> m_nLoadingCassetteType;
+			ar >> m_nQTimeFlag;
+			ar >> m_nCassetteMappingState;
+			ar >> m_nCassetteStatus;
+		}
+	}
+
 	bool CPortStatusReport::canPickFromPort()
 	{
 		// 1. Port 状态必须是 Load Ready(上料请求)
@@ -208,5 +236,18 @@
 
 		return false;
 	}
+
+	void CPortStatusReport::WriteString(CArchive& ar, std::string& string)
+	{
+		CString strTemp = string.c_str();
+		ar << strTemp;
+	}
+
+	void CPortStatusReport::ReadString(CArchive& ar, std::string& string)
+	{
+		CString strTemp;
+		ar >> strTemp;
+		string = (LPTSTR)(LPCTSTR)strTemp;
+	}
 }
 

--
Gitblit v1.9.3