From 3426d4e0ee09c61ce379cfd1fe9a6e82de346d90 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期二, 29 四月 2025 10:58:51 +0800
Subject: [PATCH] 1.增加CEqCurrentRecipeChangeStep

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

diff --git a/SourceCode/Bond/Servo/CEFEM.cpp b/SourceCode/Bond/Servo/CEFEM.cpp
index e68f73f..635b445 100644
--- a/SourceCode/Bond/Servo/CEFEM.cpp
+++ b/SourceCode/Bond/Servo/CEFEM.cpp
@@ -5,7 +5,10 @@
 namespace SERVO {
 	CEFEM::CEFEM() : CEquipment()
 	{
-
+		m_pPort[0] = nullptr;
+		m_pPort[1] = nullptr;
+		m_pPort[2] = nullptr;
+		m_pPort[3] = nullptr;
 	}
 
 	CEFEM::~CEFEM()
@@ -17,6 +20,13 @@
 	{
 		static char* pszName = "CEFEM";
 		return pszName;
+	}
+
+	void CEFEM::setPort(unsigned int index, CLoadPort* pPort)
+	{
+		if (index < 4) {
+			m_pPort[index] = pPort;
+		}
 	}
 
 	void CEFEM::init()
@@ -34,6 +44,32 @@
 	{
 		// 加入Pin初始化代码
 		LOGI("<CEFEM>initPins");
+	}
+
+	int CEFEM::onStepEvent(CStep* pStep, int code)
+	{
+		int nRet = CEquipment::onStepEvent(pStep, code);
+		if (nRet > 0) return nRet;
+
+		if (code == STEP_EVENT_READDATA) {
+			if (isCassetteTransferStateStep(pStep)) {
+				SERVO::CEqCassetteTransferStateStep* pEqCassetteStep = (SERVO::CEqCassetteTransferStateStep*)pStep;
+				int id = pEqCassetteStep->getID();
+				if (id == STEP_ID_PORT1_CASSETTIE_EMPTY) {
+
+				}
+/*
+	#define STEP_ID_PORT1_CASSETTIE_LOAD_READY		0x420
+	#define STEP_ID_PORT1_CASSETTIE_LOADED			0x428
+	#define STEP_ID_PORT1_CASSETTIE_INUSE			0x430
+	#define STEP_ID_PORT1_CASSETTIE_UNLOAD_READY	0x438
+	#define STEP_ID_PORT1_CASSETTIE_BLOCKED			0x440
+*/
+			}
+		}
+
+
+		return 0;
 	}
 
 	void CEFEM::onTimer(UINT nTimerid)
@@ -55,4 +91,25 @@
 	{
 		return __super::recvIntent(pPin, pIntent);
 	}
+
+	BOOL CEFEM::glassWillArrive(CGlass* pGlass)
+	{
+		BOOL bRet = __super::glassWillArrive(pGlass);
+		if (!bRet) {
+			return FALSE;
+		}
+
+		return m_glassList.empty();
+	}
+
+	void CEFEM::onReceiveLBData(const char* pszData, size_t size)
+	{
+		__super::onReceiveLBData(pszData, size);
+
+		for (unsigned int i = 0; i < 4; i++) {
+			if (m_pPort[i] != nullptr) {
+				m_pPort[i]->onReceiveLBData(pszData, size);
+			}
+		}
+	}
 }

--
Gitblit v1.9.3