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/Servo.vcxproj | 2
SourceCode/Bond/Servo/Servo.vcxproj.filters | 2
SourceCode/Bond/Servo/CEqCurrentRecipeChangeStep.h | 29 +++++++++
SourceCode/Bond/Servo/CEqCurrentRecipeChangeStep.cpp | 86 ++++++++++++++++++++++++++++
SourceCode/Bond/Servo/CMaster.cpp | 19 ++++++
SourceCode/Bond/Servo/CEquipment.h | 1
SourceCode/Bond/Servo/Common.h | 2
7 files changed, 140 insertions(+), 1 deletions(-)
diff --git a/SourceCode/Bond/Servo/CEqCurrentRecipeChangeStep.cpp b/SourceCode/Bond/Servo/CEqCurrentRecipeChangeStep.cpp
new file mode 100644
index 0000000..37a7abe
--- /dev/null
+++ b/SourceCode/Bond/Servo/CEqCurrentRecipeChangeStep.cpp
@@ -0,0 +1,86 @@
+#include "stdafx.h"
+#include "CEqCurrentRecipeChangeStep.h"
+#include "Log.h"
+#include "ToolUnits.h"
+
+
+namespace SERVO {
+ CEqCurrentRecipeChangeStep::CEqCurrentRecipeChangeStep() : CReadStep()
+ {
+ m_nDataDev = 0;
+ }
+
+ CEqCurrentRecipeChangeStep::~CEqCurrentRecipeChangeStep()
+ {
+
+ }
+
+ void CEqCurrentRecipeChangeStep::setDataDev(int nDev)
+ {
+ m_nDataDev = nDev;
+ }
+
+ void CEqCurrentRecipeChangeStep::getAttributeVector(CAttributeVector& attrubutes)
+ {
+ CReadStep::getAttributeVector(attrubutes);
+
+ attrubutes.addAttribute(new CAttribute("UnitNo",
+ std::to_string(m_nUnitNo).c_str(), ""));
+ attrubutes.addAttribute(new CAttribute("CurrentMasterRecipeId",
+ std::to_string(m_nCurrentMasterRecipeId).c_str(), ""));
+ attrubutes.addAttribute(new CAttribute("LocalRecipeId",
+ std::to_string(m_nLocalRecipeId).c_str(), ""));
+ }
+
+ int CEqCurrentRecipeChangeStep::onReadData()
+ {
+ CReadStep::onReadData();
+
+ char szBuffer[64];
+ int nRet = m_pCclink->ReadData2(m_station, DeviceType::W,
+ m_nDataDev, 6, szBuffer);
+ if (0 != nRet) {
+ return -1;
+ }
+
+ m_nUnitNo = (unsigned int)CToolUnits::toInt16(&szBuffer[0]);
+ m_nCurrentMasterRecipeId = (unsigned int)CToolUnits::toInt16(&szBuffer[2]);
+ m_nLocalRecipeId = (unsigned int)CToolUnits::toInt16(&szBuffer[4]);
+
+ LOGI("<CEqCurrentRecipeChangeStep> Current Recipe Changed<UnitNo:%d, CurrentMasterRecipeId:%d, LocalRecipeId:%d>\n",
+ m_nUnitNo, m_nCurrentMasterRecipeId, m_nLocalRecipeId);
+
+ return 0;
+ }
+
+ int CEqCurrentRecipeChangeStep::onComplete()
+ {
+ CReadStep::onComplete();
+ LOGI("<CEqCurrentRecipeChangeStep> onComplete.");
+
+ return 0;
+ }
+
+ int CEqCurrentRecipeChangeStep::onTimeout()
+ {
+ CReadStep::onTimeout();
+ LOGI("<CEqCurrentRecipeChangeStep> onTimeout.");
+
+ return 0;
+ }
+
+ int CEqCurrentRecipeChangeStep::getUnitNo()
+ {
+ return m_nUnitNo;
+ }
+
+ int CEqCurrentRecipeChangeStep::getCurrentMasterRecipeId()
+ {
+ return m_nCurrentMasterRecipeId;
+ }
+
+ int CEqCurrentRecipeChangeStep::getLocalRecipeId()
+ {
+ return m_nLocalRecipeId;
+ }
+}
diff --git a/SourceCode/Bond/Servo/CEqCurrentRecipeChangeStep.h b/SourceCode/Bond/Servo/CEqCurrentRecipeChangeStep.h
new file mode 100644
index 0000000..7e05701
--- /dev/null
+++ b/SourceCode/Bond/Servo/CEqCurrentRecipeChangeStep.h
@@ -0,0 +1,29 @@
+#pragma once
+#include "CReadStep.h"
+
+
+namespace SERVO {
+ class CEqCurrentRecipeChangeStep : public CReadStep
+ {
+ public:
+ CEqCurrentRecipeChangeStep();
+ ~CEqCurrentRecipeChangeStep();
+
+ public:
+ virtual void getAttributeVector(CAttributeVector& attrubutes);
+ virtual int onReadData();
+ virtual int onComplete();
+ virtual int onTimeout();
+ void setDataDev(int nDev);
+ int getUnitNo();
+ int getCurrentMasterRecipeId();
+ int getLocalRecipeId();
+
+ private:
+ int m_nDataDev;
+ int m_nUnitNo;
+ int m_nCurrentMasterRecipeId;
+ int m_nLocalRecipeId;
+ };
+}
+
diff --git a/SourceCode/Bond/Servo/CEquipment.h b/SourceCode/Bond/Servo/CEquipment.h
index c4a9ab5..ba1416f 100644
--- a/SourceCode/Bond/Servo/CEquipment.h
+++ b/SourceCode/Bond/Servo/CEquipment.h
@@ -19,6 +19,7 @@
#include "CEqCassetteCtrlCmdStep.h"
#include "CEqJobEventStep.h"
#include "CEqVcrEventStep.h"
+#include "CEqCurrentRecipeChangeStep.h"
#include <vector>
#include <map>
#include <list>
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index e38b2b2..d663e6f 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -587,7 +587,15 @@
delete pStep;
}
}
-
+ {
+ CEqCurrentRecipeChangeStep* pStep = new CEqCurrentRecipeChangeStep();
+ pStep->setName(STEP_EQ_RURRENT_RECIPE_CHANGE);
+ pStep->setWriteSignalDev(0x48);
+ pStep->setDataDev(0x6850);
+ if (pEquipment->addStep(STEP_ID_CURRENT_RECIPE_CHANGE_REPORT, pStep) != 0) {
+ delete pStep;
+ }
+ }
// CEqCassetteTranserStateStep
ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_EMPTY, 0xd8,
@@ -754,6 +762,15 @@
}
}
{
+ CEqCurrentRecipeChangeStep* pStep = new CEqCurrentRecipeChangeStep();
+ pStep->setName(STEP_EQ_RURRENT_RECIPE_CHANGE);
+ pStep->setWriteSignalDev(index == 0 ? 0x348 : 0x648);
+ pStep->setDataDev(index == 0 ? 0xa850 : 0xe850);
+ if (pEquipment->addStep(STEP_ID_CURRENT_RECIPE_CHANGE_REPORT, pStep) != 0) {
+ delete pStep;
+ }
+ }
+ {
// CIM Message Confirm
CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, index == 0 ? 0x9d80 : 0xdd80);
pStep->setName(STEP_EQ_CIM_MESSAGE_CONFIRM);
diff --git a/SourceCode/Bond/Servo/Common.h b/SourceCode/Bond/Servo/Common.h
index c42851a..78351fa 100644
--- a/SourceCode/Bond/Servo/Common.h
+++ b/SourceCode/Bond/Servo/Common.h
@@ -138,6 +138,7 @@
#define STEP_EQ_SENT_OUT_JOB_DOWNS1 _T("EQJESentOutJobDowns1")
#define STEP_EQ_SENT_OUT_JOB_DOWNS2 _T("EQJESentOutJobDowns2")
#define STEP_EQ_VCR1_EVENT_REPORT _T("EQVcr1EventReport")
+#define STEP_EQ_RURRENT_RECIPE_CHANGE _T("EQCurrentRecipeChange")
/* Step ID */
@@ -155,6 +156,7 @@
#define STEP_ID_EQALARM4 0x565
#define STEP_ID_EQALARM5 0x566
#define STEP_ID_PROCESS_DATA_REPORT 0x567
+#define STEP_ID_CURRENT_RECIPE_CHANGE_REPORT 0x568
#define STEP_ID_CIM_MSG_CONFIRM_REPORT 0x569
#define STEP_ID_VCR1_EVENT_REPORT 0x56A
#define STEP_ID_RECIVE_JOB_UPS1 0x580
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj b/SourceCode/Bond/Servo/Servo.vcxproj
index e94146c..cddacfd 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj
+++ b/SourceCode/Bond/Servo/Servo.vcxproj
@@ -245,6 +245,7 @@
<ClInclude Include="CPath.h" />
<ClInclude Include="CPin.h" />
<ClInclude Include="CReadStep.h" />
+ <ClInclude Include="CEqCurrentRecipeChangeStep.h" />
<ClInclude Include="CSample.h" />
<ClInclude Include="CStep.h" />
<ClInclude Include="CVacuumBake.h" />
@@ -331,6 +332,7 @@
<ClCompile Include="CPath.cpp" />
<ClCompile Include="CPin.cpp" />
<ClCompile Include="CReadStep.cpp" />
+ <ClCompile Include="CEqCurrentRecipeChangeStep.cpp" />
<ClCompile Include="CSample.cpp" />
<ClCompile Include="CStep.cpp" />
<ClCompile Include="CVacuumBake.cpp" />
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj.filters b/SourceCode/Bond/Servo/Servo.vcxproj.filters
index de28b85..f6f2606 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj.filters
+++ b/SourceCode/Bond/Servo/Servo.vcxproj.filters
@@ -92,6 +92,7 @@
<ClCompile Include="CVcrEventReport.cpp" />
<ClCompile Include="CEqVcrEventStep.cpp" />
<ClCompile Include="CPagePortProperty.cpp" />
+ <ClCompile Include="CEqCurrentRecipeChangeStep.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="AlarmManager.h" />
@@ -182,6 +183,7 @@
<ClInclude Include="CVcrEventReport.h" />
<ClInclude Include="CEqVcrEventStep.h" />
<ClInclude Include="CPagePortProperty.h" />
+ <ClInclude Include="CEqCurrentRecipeChangeStep.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Servo.rc" />
--
Gitblit v1.9.3