From 5a8bbd2426aeacdbbb2fdb1a7f7a1adce0cac7f9 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 01 八月 2025 16:23:29 +0800
Subject: [PATCH] 1. 新增以下功能函数并集成:    - InitStorage():初始化存储区域    - StartStorage():开始数据存储    - StopStorage():停止存储并自动提取、分析数据    - AnalyzeStoredData():分析指定端口数据,返回偏移量

---
 SourceCode/Bond/Servo/CLoadPort.cpp |   26 ++++++++------------------
 1 files changed, 8 insertions(+), 18 deletions(-)

diff --git a/SourceCode/Bond/Servo/CLoadPort.cpp b/SourceCode/Bond/Servo/CLoadPort.cpp
index 37f3139..29b9050 100644
--- a/SourceCode/Bond/Servo/CLoadPort.cpp
+++ b/SourceCode/Bond/Servo/CLoadPort.cpp
@@ -9,8 +9,8 @@
 	CLoadPort::CLoadPort() : CEquipment()
 	{
 		m_nIndex = 0;
-		m_portType = PortType::Loading;
-		m_portMode = PortMode::ReadyToLoad;
+		m_portType = PortType::Both;
+		m_portMode = PortMode::OutOfService;
 		m_cassetteType = CassetteType::G1;
 		m_transferMode = TransferMode::AGVMode;
 		m_bEnable = FALSE;
@@ -115,6 +115,7 @@
 				[&](void* pFrom, int code, const char* pszData, size_t size) -> int {
 					if (code == ROK && pszData != nullptr && size > 0) {
 						m_portMode = (PortMode)CToolUnits::toInt16(pszData);
+						LOGI("<LoadPort-%d>m_portMode:%d", m_nIndex, m_portMode);
 					}
 					return 0;
 				});
@@ -355,10 +356,10 @@
 			static int ii = 0;
 			ii++;
 			if (ii == 20) {
-				char szBuffer[64];
+				char szBuffer[64] = {0};
 				CStep* pStep = getStepWithName(STEP_EQ_PORT1_INUSE);
 				CPortStatusReport portStatusReport;
-				portStatusReport.setPortStatus(PORT_INUSE);
+				portStatusReport.setPortStatus(PORT_UNLOAD_READY);
 				portStatusReport.setJobExistenceSlot(0xf);
 				int nRet = portStatusReport.serialize(szBuffer, 64);
 				decodePortStatusReport(pStep, szBuffer, 64);
@@ -373,23 +374,11 @@
 
 		if (ar.IsStoring()) {
 			ar << m_nIndex;
-			//ar << (int)m_portType;
-			//ar << (int)m_portMode;
-			//ar << (int)m_cassetteType;
-			//ar << (int)m_transferMode;
-			//ar << m_bEnable;
-			//ar << m_bAutoChangeEnable;
 			m_portStatusReport.serialize(ar);
 		}
 		else {
 			int temp;
 			ar >> m_nIndex;
-			//ar >> temp; m_portType = (PortType)temp;
-			//ar >> temp; m_portMode = (PortMode)temp;
-			//ar >> temp; m_cassetteType = (CassetteType)temp;
-			//ar >> temp; m_transferMode = (TransferMode)temp;
-			//ar >> m_bEnable;
-			//ar >> m_bAutoChangeEnable;
 			m_portStatusReport.serialize(ar);
 		}
 	}
@@ -924,8 +913,9 @@
 			else {
 				// 抛出到应用层做选择要加工的片子
 				generateGlassList(getScanCassetteMap());
-				if (m_listener.onPortInUse != nullptr) {
-					m_listener.onPortInUse(this, getScanCassetteMap());
+				if (m_listener.onPortStatusChanged != nullptr) {
+					m_listener.onPortStatusChanged(this, portStatusReport.getPortStatus(),
+						getScanCassetteMap());
 				}
 			}
 		}

--
Gitblit v1.9.3