From e7a450d2fdc99bd501e1af7dd7c16c477cfea75e Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期六, 15 三月 2025 11:56:44 +0800
Subject: [PATCH] 1.CimMessageClear(清除Cim消息)测试通过; 2.增加VCREanbleStep(启用/禁用)VCR;

---
 /dev/null                                                    |    0 
 SourceCode/Bond/Servo/Servo.vcxproj                          |    2 
 SourceCode/Bond/Servo/Servo.vcxproj.filters                  |    2 
 SourceCode/Bond/Servo/CEqVCREnableStep.cpp                   |   48 ++++++++++++++++
 SourceCode/Bond/Servo/CEqVCREnableStep.h                     |   22 +++++++
 SourceCode/Bond/Servo/CMaster.cpp                            |   41 ++++++++-----
 Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.1.xlsx |    0 
 SourceCode/Bond/Servo/CEquipment.h                           |    1 
 SourceCode/Bond/Servo/ServoDlg.cpp                           |   18 ++---
 SourceCode/Bond/Servo/Common.h                               |    1 
 10 files changed, 109 insertions(+), 26 deletions(-)

diff --git "a/Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.1\0501\051.xlsx" "b/Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.1\0501\051.xlsx"
deleted file mode 100644
index 312cbab..0000000
--- "a/Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.1\0501\051.xlsx"
+++ /dev/null
Binary files differ
diff --git a/Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.1.xlsx b/Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.1.xlsx
new file mode 100644
index 0000000..544f8a8
--- /dev/null
+++ b/Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.1.xlsx
Binary files differ
diff --git a/SourceCode/Bond/Servo/CEqVCREnableStep.cpp b/SourceCode/Bond/Servo/CEqVCREnableStep.cpp
new file mode 100644
index 0000000..5f07263
--- /dev/null
+++ b/SourceCode/Bond/Servo/CEqVCREnableStep.cpp
@@ -0,0 +1,48 @@
+#include "stdafx.h"
+#include "CEqVCREnableStep.h"
+#include "Log.h"
+
+
+namespace SERVO {
+	CEqVCREnableStep::CEqVCREnableStep() : CWriteStep()
+	{
+		m_nEqVCRModeDev = 0;
+	}
+
+	CEqVCREnableStep::~CEqVCREnableStep()
+	{
+
+	}
+
+	void CEqVCREnableStep::setEqVCRModeDev(int nDev)
+	{
+		m_nEqVCRModeDev = nDev;
+	}
+
+	int CEqVCREnableStep::vcrEanble(short id)
+	{
+		char szBuffer[16];
+		int mode = 1;
+		memcpy(szBuffer, &id, sizeof(short));
+		memcpy(&szBuffer[2], &mode, sizeof(short));
+		return writeData(m_nEqVCRModeDev, (const char*)szBuffer, 4);
+	}
+
+	int CEqVCREnableStep::vcrDisable(short id)
+	{
+		char szBuffer[16];
+		int mode = 2;
+		memcpy(szBuffer, &id, sizeof(short));
+		memcpy(&szBuffer[2], &mode, sizeof(short));
+		return writeData(m_nEqVCRModeDev, (const char*)szBuffer, 4);
+	}
+
+	void CEqVCREnableStep::getAttributeVector(CAttributeVector& attrubutes)
+	{
+		CWriteStep::getAttributeVector(attrubutes);
+
+		std::string strTemp;
+		attrubutes.addAttribute(new CAttribute("VCR Mode Dev",
+			("W" + CToolUnits::toHexString(m_nEqVCRModeDev, strTemp)).c_str(), ""));
+	}
+}
diff --git a/SourceCode/Bond/Servo/CEqVCREnableStep.h b/SourceCode/Bond/Servo/CEqVCREnableStep.h
new file mode 100644
index 0000000..ebd605d
--- /dev/null
+++ b/SourceCode/Bond/Servo/CEqVCREnableStep.h
@@ -0,0 +1,22 @@
+#pragma once
+#include "CWriteStep.h"
+
+
+namespace SERVO {
+	class CEqVCREnableStep : public CWriteStep
+	{
+	public:
+		CEqVCREnableStep();
+		~CEqVCREnableStep();
+
+	public:
+		void setEqVCRModeDev(int nDev);
+		int vcrEanble(short id);
+		int vcrDisable(short id);
+		void getAttributeVector(CAttributeVector& attrubutes);
+
+	private:
+		int m_nEqVCRModeDev;
+	};
+}
+
diff --git a/SourceCode/Bond/Servo/CEquipment.h b/SourceCode/Bond/Servo/CEquipment.h
index ac64bd3..ad84bee 100644
--- a/SourceCode/Bond/Servo/CEquipment.h
+++ b/SourceCode/Bond/Servo/CEquipment.h
@@ -10,6 +10,7 @@
 #include "CEqCimMessageCmdStep.h"
 #include "CEqCimMessageClearStep.h"
 #include "CEqDateTimeSetCmdStep.h"
+#include "CEqVCREnableStep.h"
 #include <map>
 
 
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 6b16c44..10379b0 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -245,22 +245,12 @@
 			}
 		}
 		{
-			CEqModeChangeStep* pStep = new CEqModeChangeStep();
-			pStep->setName(STEP_EQ_MODE_CHANGE);
-			pStep->setListener(listener);
-			pStep->setWriteSignalDev(0x51);
-			pStep->setEqModeDev(0x1E);
-			if (pEquipment->addStep(0x351, pStep) != 0) {
-				delete pStep;
-			}
-		}
-		{
 			CEqCimMessageCmdStep* pStep = new CEqCimMessageCmdStep();
 			pStep->setName(STEP_CIM_MESSAGE_CMD);
 			pStep->setListener(listener);
-			pStep->setWriteSignalDev(0x53);
+			pStep->setWriteSignalDev(0x51);
 			pStep->setCimMessageDev(0x0);
-			if (pEquipment->addStep(0x352, pStep) != 0) {
+			if (pEquipment->addStep(0x351, pStep) != 0) {
 				delete pStep;
 			}
 		}
@@ -268,9 +258,9 @@
 			CEqCimMessageClearStep* pStep = new CEqCimMessageClearStep();
 			pStep->setName(STEP_CIM_MESSAGE_CLEAR);
 			pStep->setListener(listener);
-			pStep->setWriteSignalDev(0x54);
+			pStep->setWriteSignalDev(0x52);
 			pStep->setClearCimMessageDev(0x13);
-			if (pEquipment->addStep(0x353, pStep) != 0) {
+			if (pEquipment->addStep(0x352, pStep) != 0) {
 				delete pStep;
 			}
 		}
@@ -278,12 +268,33 @@
 			CEqDateTimeSetCmdStep* pStep = new CEqDateTimeSetCmdStep();
 			pStep->setName(STEP_DATETIME_SET_CMD);
 			pStep->setListener(listener);
-			pStep->setWriteSignalDev(0x55);
+			pStep->setWriteSignalDev(0x53);
 			pStep->setDateTimeDev(0x16);
+			if (pEquipment->addStep(0x353, pStep) != 0) {
+				delete pStep;
+			}
+		}
+		{
+			CEqVCREnableStep* pStep = new CEqVCREnableStep();
+			pStep->setName(STEP_EQ_VCR_ENABLE);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x54);
+			pStep->setEqVCRModeDev(0x1F);
 			if (pEquipment->addStep(0x354, pStep) != 0) {
 				delete pStep;
 			}
 		}
+		{
+			CEqModeChangeStep* pStep = new CEqModeChangeStep();
+			pStep->setName(STEP_EQ_MODE_CHANGE);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x55);
+			pStep->setEqModeDev(0x1E);
+			if (pEquipment->addStep(0x355, pStep) != 0) {
+				delete pStep;
+			}
+		}
+
 		pEquipment->init();
 		LOGE("已添加“EFEM(ROBOT)”.");
 		return 0;
diff --git a/SourceCode/Bond/Servo/Common.h b/SourceCode/Bond/Servo/Common.h
index c4e9244..1d1bee5 100644
--- a/SourceCode/Bond/Servo/Common.h
+++ b/SourceCode/Bond/Servo/Common.h
@@ -68,6 +68,7 @@
 #define STEP_CIM_MESSAGE_CMD	_T("EQCimMessageCmd")
 #define STEP_CIM_MESSAGE_CLEAR	_T("EQCimMessageClear")
 #define STEP_DATETIME_SET_CMD	_T("EQDateTimeSetCmd")
+#define STEP_EQ_VCR_ENABLE		_T("EQVCREnable")
 
 
 #define BASE_ALARM_EFEM		10000
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj b/SourceCode/Bond/Servo/Servo.vcxproj
index 68eb757..96cc98d 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj
+++ b/SourceCode/Bond/Servo/Servo.vcxproj
@@ -213,6 +213,7 @@
     <ClInclude Include="CEqModeStep.h" />
     <ClInclude Include="CEqProcessStep.h" />
     <ClInclude Include="CEqStatusStep.h" />
+    <ClInclude Include="CEqVCREnableStep.h" />
     <ClInclude Include="CPanelAttributes.h" />
     <ClInclude Include="CPanelEquipment.h" />
     <ClInclude Include="CPanelMaster.h" />
@@ -264,6 +265,7 @@
     <ClCompile Include="CEqModeStep.cpp" />
     <ClCompile Include="CEqProcessStep.cpp" />
     <ClCompile Include="CEqStatusStep.cpp" />
+    <ClCompile Include="CEqVCREnableStep.cpp" />
     <ClCompile Include="CPanelAttributes.cpp" />
     <ClCompile Include="CPanelEquipment.cpp" />
     <ClCompile Include="CPanelMaster.cpp" />
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj.filters b/SourceCode/Bond/Servo/Servo.vcxproj.filters
index deafbb5..eea77ce 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj.filters
+++ b/SourceCode/Bond/Servo/Servo.vcxproj.filters
@@ -57,6 +57,7 @@
     <ClCompile Include="CEqCimMessageCmdStep.cpp" />
     <ClCompile Include="CEqCimMessageClearStep.cpp" />
     <ClCompile Include="CEqDateTimeSetCmdStep.cpp" />
+    <ClCompile Include="CEqVCREnableStep.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="AlarmManager.h" />
@@ -112,6 +113,7 @@
     <ClInclude Include="CEqCimMessageCmdStep.h" />
     <ClInclude Include="CEqCimMessageClearStep.h" />
     <ClInclude Include="CEqDateTimeSetCmdStep.h" />
+    <ClInclude Include="CEqVCREnableStep.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="Servo.rc" />
diff --git a/SourceCode/Bond/Servo/ServoDlg.cpp b/SourceCode/Bond/Servo/ServoDlg.cpp
index fbd0eff..6e52d61 100644
--- a/SourceCode/Bond/Servo/ServoDlg.cpp
+++ b/SourceCode/Bond/Servo/ServoDlg.cpp
@@ -560,16 +560,8 @@
 {
 	SERVO::CEquipment* pEquipment = m_pPanelMaster->GetActiveEquipment();
 	if (pEquipment != nullptr) {
-		SERVO::CEqCimModeChangeStep* pStep = (SERVO::CEqCimModeChangeStep*)pEquipment->getStepWithName(STEP_CIM_MODE_CHANGE);
-		if (pStep != nullptr) {
-			static int i = 0;
-			i++;
-			if(i % 2 == 1)
-				pStep->cimOn();
-			else
-				pStep->cimOff();
-			AfxMessageBox(pStep->getName().c_str());
-		}
+		SERVO::CEqCimMessageCmdStep* pStep = (SERVO::CEqCimMessageCmdStep*)pEquipment->getStepWithName(STEP_CIM_MESSAGE_CMD);
+		pStep->setCimMessage("HELLO 5007", 2, 3);
 	}
 }
 
@@ -580,7 +572,11 @@
 
 void CServoDlg::OnMenuTestMessageClear()
 {
-	AfxMessageBox("OnMenuTestMessageClear");
+	SERVO::CEquipment* pEquipment = m_pPanelMaster->GetActiveEquipment();
+	if (pEquipment != nullptr) {
+		SERVO::CEqCimMessageClearStep* pStep = (SERVO::CEqCimMessageClearStep*)pEquipment->getStepWithName(STEP_CIM_MESSAGE_CLEAR);
+		pStep->clearCimMessage(2, 3);
+	}
 }
 
 void CServoDlg::OnUpdateMenuTestMessageClear(CCmdUI* pCmdUI)

--
Gitblit v1.9.3