From 9e25e06d7ec9d7cd1c31a9d30a8a018e2af63e3a Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 29 八月 2025 11:28:16 +0800
Subject: [PATCH] 1.Port Unload Ready,事件的上报,EAP模拟程序观察验证数据;

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

diff --git a/SourceCode/Bond/Servo/CAligner.cpp b/SourceCode/Bond/Servo/CAligner.cpp
index f96229e..815b1ee 100644
--- a/SourceCode/Bond/Servo/CAligner.cpp
+++ b/SourceCode/Bond/Servo/CAligner.cpp
@@ -39,6 +39,43 @@
 		addPin(SERVO::PinType::OUTPUT, _T("Out2"));
 	}
 
+	// 必须要实现的虚函数,在此初始化Slot信息
+	void CAligner::initSlots()
+	{
+		m_slot[0].enable();
+		m_slot[0].setPosition(m_nID);
+		m_slot[0].setNo(1);
+		m_slot[0].setName("Slot 1");
+	}
+
+	void CAligner::initSteps()
+	{
+		CEquipment::initSteps();
+
+		{
+			// Panel Data Report
+			CEqReadStep* pStep = new CEqReadStep(0x617f, 386 * 2,
+				[&](void* pFrom, int code, const char* pszData, size_t size) -> int {
+					if (code == ROK && pszData != nullptr && size > 0) {
+						decodePanelDataReport((CStep*)pFrom, pszData, size);
+					}
+					return -1;
+				});
+			pStep->setName(STEP_EQ_PANEL_DATA_REPORT);
+			pStep->setProp("Port", (void*)1);
+			pStep->setWriteSignalDev(0x15e);
+			if (addStep(STEP_ID_PANEL_DATA_REPORT, pStep) != 0) {
+				delete pStep;
+			}
+		}
+	}
+
+	void CAligner::onReceiveLBData(const char* pszData, size_t size)
+	{
+		__super::onReceiveLBData(pszData, size);
+		CHECK_READ_STEP_SIGNAL(STEP_ID_PANEL_DATA_REPORT, pszData, size);
+	}
+
 	void CAligner::onTimer(UINT nTimerid)
 	{
 		CEquipment::onTimer(nTimerid);
@@ -48,4 +85,14 @@
 	{
 		CEquipment::serialize(ar);
 	}
+
+	void CAligner::getAttributeVector(CAttributeVector& attrubutes)
+	{
+		__super::getAttributeVector(attrubutes);
+	}
+
+	int CAligner::recvIntent(CPin* pPin, CIntent* pIntent)
+	{
+		return __super::recvIntent(pPin, pIntent);
+	}
 }

--
Gitblit v1.9.3