From 0b32b5ca45370256da5bbfa8ca43014890258997 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期六, 10 五月 2025 15:58:45 +0800
Subject: [PATCH] 1.修复storeJob为storedJob

---
 SourceCode/Bond/Servo/CEFEM.cpp |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 55 insertions(+), 1 deletions(-)

diff --git a/SourceCode/Bond/Servo/CEFEM.cpp b/SourceCode/Bond/Servo/CEFEM.cpp
index 3918188..bae19e5 100644
--- a/SourceCode/Bond/Servo/CEFEM.cpp
+++ b/SourceCode/Bond/Servo/CEFEM.cpp
@@ -300,7 +300,7 @@
 				CEqReadStep* pStep = new CEqReadStep(0x5c31 + 18 * i, 18 * 2,
 					[&](void* pFrom, int code, const char* pszData, size_t size) -> int {
 						if (code == ROK && pszData != nullptr && size > 0) {
-							int port = (int)((CEqReadStep*)pFrom)->getProp("Port");
+							int port = (int)(__int64)((CEqReadStep*)pFrom)->getProp("Port");
 							if (port > 0) {
 								decodeFetchedOutJobReport(port, pszData, size);
 							}
@@ -312,6 +312,30 @@
 				pStep->setProp("Port", (void*)(__int64)(i + 1));
 				pStep->setWriteSignalDev(0x023 + i);
 				if (addStep(STEP_ID_FETCHED_OUT_JOB_REPORT1 + i, pStep) != 0) {
+					delete pStep;
+				}
+			}
+		}
+
+		{
+			// Store Job Report #1~15
+			char szBuffer[256];
+			for (int i = 0; i < 15; i++) {
+				CEqReadStep* pStep = new CEqReadStep(0x5b23 + 18 * i, 18 * 2,
+					[&](void* pFrom, int code, const char* pszData, size_t size) -> int {
+						if (code == ROK && pszData != nullptr && size > 0) {
+							int port = (int)(__int64)((CEqReadStep*)pFrom)->getProp("Port");
+							if (port > 0) {
+								decodeStoredJobReport(port, pszData, size);
+							}
+						}
+						return -1;
+					});
+				sprintf_s(szBuffer, "%s%d", STEP_EQ_STORED_JOBn, i + 1);
+				pStep->setName(szBuffer);
+				pStep->setProp("Port", (void*)(__int64)(i + 1));
+				pStep->setWriteSignalDev(0x014 + i);
+				if (addStep(STEP_ID_STORE_JOB_REPORT1 + i, pStep) != 0) {
 					delete pStep;
 				}
 			}
@@ -407,4 +431,34 @@
 
 		return -1;
 	}
+
+	int CEFEM::onStore(int port, const char* pszGlassId)
+	{
+		if (port == 1) {
+			return m_pPort[0]->storedJob(pszGlassId);
+		}
+		if (port == 2) {
+			return m_pPort[1]->storedJob(pszGlassId);
+		}
+		if (port == 3) {
+			return m_pPort[2]->storedJob(pszGlassId);
+		}
+		if (port == 4) {
+			return m_pPort[3]->storedJob(pszGlassId);
+		}
+		if (port == 5) {
+			return m_pArmTray[0]->storedJob(pszGlassId);
+		}
+		if (port == 6) {
+			return m_pArmTray[1]->storedJob(pszGlassId);
+		}
+		if (port == 7) {
+			return m_pAligner->storedJob(pszGlassId);
+		}
+		if (port == 8) {
+			return m_pFliper->storedJob(pszGlassId);
+		}
+
+		return -1;
+	}
 }

--
Gitblit v1.9.3