From 8eee0a06c608281c6bb437b9481c0976aaaabe98 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期四, 27 二月 2025 17:52:37 +0800
Subject: [PATCH] 1.添加CEqProcessStep

---
 SourceCode/Bond/Servo/CMaster.cpp |  135 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 111 insertions(+), 24 deletions(-)

diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 70cb1b8..04d7574 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -13,7 +13,7 @@
 
 	CMaster::CMaster()
 	{
-		m_listener = {nullptr, nullptr};
+		m_listener = {nullptr, nullptr, nullptr};
 	}
 
 	CMaster::~CMaster()
@@ -28,11 +28,21 @@
 	{
 		m_listener.onEqAlive = listener.onEqAlive;
 		m_listener.onEqCimStateChanged = listener.onEqCimStateChanged;
+		m_listener.onEqStepEvent = listener.onEqStepEvent;
 	}
 
 	int CMaster::init()
 	{
 		LOGI("<Master>正在初始化...");
+
+
+		StepListener listener;
+		listener.onEvent = [&](void* pStep, int code, void* pData) -> void {
+			TRACE("<CEquipment>onEvent<%d, 0x%x>.\n", code, pData);
+			if (m_listener.onEqStepEvent != nullptr) {
+				m_listener.onEqStepEvent((CStep*)pStep, code, pData);
+			}
+		};
 
 
 		// 	cclink
@@ -62,30 +72,8 @@
 
 
 		// 初始化添加各子设备
-		{
-			CEFEM* pEquipment = new CEFEM();
-			pEquipment->setID(EQ_ID_EFEM);
-			pEquipment->setName("EFEM(ROBOT)");
-			pEquipment->setDescription("EFEM(ROBOT).");
-			pEquipment->setReadBitBlock(0x4000, 0x45ff);
-			pEquipment->setStation(0, 255);
-			addEquipment(pEquipment);
+		addEFEM(listener);
 
-
-			// 添加 step
-			{
-				CEqModeStep* pStep = new CEqModeStep();
-				pStep->setWriteSignalDev(0x30);
-				pStep->setModeDev(0x4a8c);
-				if (pEquipment->addStep(0x360, pStep) != 0) {
-					delete pStep;
-				}
-			}
-
-
-			pEquipment->init();
-			LOGE("已添加“EFEM(ROBOT)”.");
-		}
 		/*
 		{
 			CBonder* pBonder = new CBonder();
@@ -148,6 +136,105 @@
 		return nullptr;
 	}
 
+	int CMaster::addEFEM(StepListener& listener)
+	{
+		CEFEM* pEquipment = new CEFEM();
+		pEquipment->setID(EQ_ID_EFEM);
+		pEquipment->setBaseAlarmId(BASE_ALARM_EFEM);
+		pEquipment->setName("EFEM(ROBOT)");
+		pEquipment->setDescription("EFEM(ROBOT).");
+		pEquipment->setReadBitBlock(0x4000, 0x45ff);
+		pEquipment->setStation(0, 255);
+		addEquipment(pEquipment);
+
+
+		// 添加 step
+		{
+			CEqModeStep* pStep = new CEqModeStep();
+			pStep->setName(STEP_MODE);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x30);
+			pStep->setModeDev(0x4a8c);
+			if (pEquipment->addStep(0x360, pStep) != 0) {
+				delete pStep;
+			}
+		}
+		{
+			CEqStatusStep* pStep = new CEqStatusStep();
+			pStep->setName(STEP_STATUS);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x31);
+			pStep->setStatusDev(0x4a68);
+			if (pEquipment->addStep(0x361, pStep) != 0) {
+				delete pStep;
+			}
+		}
+		{
+			CEqAlarmStep* pStep = new CEqAlarmStep();
+			pStep->setName(STEP_ALARM_BLOCK1);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x32);
+			pStep->setAlarmDev(0x4c1d);
+			if (pEquipment->addStep(0x362, pStep) != 0) {
+				delete pStep;
+			}
+		}
+		{
+			CEqAlarmStep* pStep = new CEqAlarmStep();
+			pStep->setName(STEP_ALARM_BLOCK2);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x33);
+			pStep->setAlarmDev(0x4c4a);
+			if (pEquipment->addStep(0x363, pStep) != 0) {
+				delete pStep;
+			}
+		}
+		{
+			CEqAlarmStep* pStep = new CEqAlarmStep();
+			pStep->setName(STEP_ALARM_BLOCK3);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x34);
+			pStep->setAlarmDev(0x4c77);
+			if (pEquipment->addStep(0x364, pStep) != 0) {
+				delete pStep;
+			}
+		}
+		{
+			CEqAlarmStep* pStep = new CEqAlarmStep();
+			pStep->setName(STEP_ALARM_BLOCK4);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x35);
+			pStep->setAlarmDev(0x4ca4);
+			if (pEquipment->addStep(0x365, pStep) != 0) {
+				delete pStep;
+			}
+		}
+		{
+			CEqAlarmStep* pStep = new CEqAlarmStep();
+			pStep->setName(STEP_ALARM_BLOCK5);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x36);
+			pStep->setAlarmDev(0x4cd1);
+			if (pEquipment->addStep(0x366, pStep) != 0) {
+				delete pStep;
+			}
+		}
+		{
+			CEqProcessStep* pStep = new CEqProcessStep();
+			pStep->setName(STEP_PROCESS);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x37);
+			pStep->setProcessDev(0x1864);
+			if (pEquipment->addStep(0x367, pStep) != 0) {
+				delete pStep;
+			}
+		}
+
+		pEquipment->init();
+		LOGE("已添加“EFEM(ROBOT)”.");
+		return 0;
+	}
+
 	void CMaster::onTimer(UINT nTimerid)
 	{
 		for (auto item : m_listEquipment) {

--
Gitblit v1.9.3