From b8c35c05be4be6881804d6d0eb4ba2b74ae33308 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期四, 13 三月 2025 15:41:50 +0800
Subject: [PATCH] 1.增加CEqCimMessageCmdStep(发送Cim消息)和CEqCimMessageClearStep(清除消息)

---
 SourceCode/Bond/Servo/Servo.vcxproj              |    4 +
 SourceCode/Bond/Servo/Servo.vcxproj.filters      |    4 +
 SourceCode/Bond/Servo/CEqCimMessageClearStep.h   |   21 +++++++
 SourceCode/Bond/Servo/CEqCimMessageCmdStep.cpp   |   37 ++++++++++++
 SourceCode/Bond/Servo/CEqCimMessageClearStep.cpp |   36 ++++++++++++
 SourceCode/Bond/Servo/CMaster.cpp                |   20 ++++++
 SourceCode/Bond/Servo/CEquipment.h               |    2 
 SourceCode/Bond/Servo/CEqCimMessageCmdStep.h     |   21 +++++++
 SourceCode/Bond/Servo/Common.h                   |    2 
 9 files changed, 147 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/CEqCimMessageClearStep.cpp b/SourceCode/Bond/Servo/CEqCimMessageClearStep.cpp
new file mode 100644
index 0000000..cb0d6c2
--- /dev/null
+++ b/SourceCode/Bond/Servo/CEqCimMessageClearStep.cpp
@@ -0,0 +1,36 @@
+#include "stdafx.h"
+#include "CEqCimMessageClearStep.h"
+
+
+namespace SERVO {
+	CEqCimMessageClearStep::CEqCimMessageClearStep() : CWriteStep()
+	{
+		m_nClearCimMessageDev = 0;
+	}
+
+	CEqCimMessageClearStep::~CEqCimMessageClearStep()
+	{
+
+	}
+
+	void CEqCimMessageClearStep::setClearCimMessageDev(int nDev)
+	{
+		m_nClearCimMessageDev = nDev;
+	}
+
+	int CEqCimMessageClearStep::clearCimMessage(short id, short nTouchPanelNo)
+	{
+		char szBuffer[4] = {0};
+		memcpy(&szBuffer[0], &id, sizeof(short));
+		memcpy(&szBuffer[2], &nTouchPanelNo, sizeof(short));
+		return writeData(m_nClearCimMessageDev, (const char*)szBuffer, 4);
+	}
+
+	void CEqCimMessageClearStep::getAttributeVector(CAttributeVector& attrubutes)
+	{
+		CWriteStep::getAttributeVector(attrubutes);
+
+		attrubutes.addAttribute(new CAttribute("Clear Cim Message Dev",
+			std::to_string(m_nClearCimMessageDev).c_str(), ""));
+	}
+}
diff --git a/SourceCode/Bond/Servo/CEqCimMessageClearStep.h b/SourceCode/Bond/Servo/CEqCimMessageClearStep.h
new file mode 100644
index 0000000..b4306f9
--- /dev/null
+++ b/SourceCode/Bond/Servo/CEqCimMessageClearStep.h
@@ -0,0 +1,21 @@
+#pragma once
+#include "CWriteStep.h"
+
+
+namespace SERVO {
+	class CEqCimMessageClearStep : public CWriteStep
+	{
+	public:
+		CEqCimMessageClearStep();
+		~CEqCimMessageClearStep();
+
+	public:
+		void setClearCimMessageDev(int nDev);
+		int clearCimMessage(short id, short nTouchPanelNo);
+		void getAttributeVector(CAttributeVector& attrubutes);
+
+	private:
+		int m_nClearCimMessageDev;
+	};
+}
+
diff --git a/SourceCode/Bond/Servo/CEqCimMessageCmdStep.cpp b/SourceCode/Bond/Servo/CEqCimMessageCmdStep.cpp
new file mode 100644
index 0000000..6aa9d2e
--- /dev/null
+++ b/SourceCode/Bond/Servo/CEqCimMessageCmdStep.cpp
@@ -0,0 +1,37 @@
+#include "stdafx.h"
+#include "CEqCimMessageCmdStep.h"
+
+
+namespace SERVO {
+	CEqCimMessageCmdStep::CEqCimMessageCmdStep() : CWriteStep()
+	{
+		m_nCimMessageDev = 0;
+	}
+
+	CEqCimMessageCmdStep::~CEqCimMessageCmdStep()
+	{
+
+	}
+
+	void CEqCimMessageCmdStep::setCimMessageDev(int nDev)
+	{
+		m_nCimMessageDev = nDev;
+	}
+
+	int CEqCimMessageCmdStep::setCimMessage(const char* pszMessage, short id, short nTouchPanelNo)
+	{
+		char szBuffer[36] = {0};
+		strcpy_s(szBuffer, 32, pszMessage);
+		memcpy(&szBuffer[32], &id, sizeof(short));
+		memcpy(&szBuffer[34], &nTouchPanelNo, sizeof(short));
+		return writeData(m_nCimMessageDev, (const char*)szBuffer, 36);
+	}
+
+	void CEqCimMessageCmdStep::getAttributeVector(CAttributeVector& attrubutes)
+	{
+		CWriteStep::getAttributeVector(attrubutes);
+
+		attrubutes.addAttribute(new CAttribute("Cim Message Dev",
+			std::to_string(m_nCimMessageDev).c_str(), ""));
+	}
+}
diff --git a/SourceCode/Bond/Servo/CEqCimMessageCmdStep.h b/SourceCode/Bond/Servo/CEqCimMessageCmdStep.h
new file mode 100644
index 0000000..61378ed
--- /dev/null
+++ b/SourceCode/Bond/Servo/CEqCimMessageCmdStep.h
@@ -0,0 +1,21 @@
+#pragma once
+#include "CWriteStep.h"
+
+
+namespace SERVO {
+	class CEqCimMessageCmdStep : public CWriteStep
+	{
+	public:
+		CEqCimMessageCmdStep();
+		~CEqCimMessageCmdStep();
+
+	public:
+		void setCimMessageDev(int nDev);
+		int setCimMessage(const char* pszMessage, short id, short nTouchPanelNo);
+		void getAttributeVector(CAttributeVector& attrubutes);
+
+	private:
+		int m_nCimMessageDev;
+	};
+}
+
diff --git a/SourceCode/Bond/Servo/CEquipment.h b/SourceCode/Bond/Servo/CEquipment.h
index 0e5442f..c8bccd9 100644
--- a/SourceCode/Bond/Servo/CEquipment.h
+++ b/SourceCode/Bond/Servo/CEquipment.h
@@ -7,6 +7,8 @@
 #include "CEqProcessStep.h"
 #include "CEqCimModeChangeStep.h"
 #include "CEqModeChangeStep.h"
+#include "CEqCimMessageCmdStep.h"
+#include "CEqCimMessageClearStep.h"
 #include <map>
 
 
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index a14b7cc..c954c14 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -254,6 +254,26 @@
 				delete pStep;
 			}
 		}
+		{
+			CEqCimMessageCmdStep* pStep = new CEqCimMessageCmdStep();
+			pStep->setName(STEP_CIM_MESSAGE_CMD);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x53);
+			pStep->setCimMessageDev(0x0);
+			if (pEquipment->addStep(0x352, pStep) != 0) {
+				delete pStep;
+			}
+		}
+		{
+			CEqCimMessageClearStep* pStep = new CEqCimMessageClearStep();
+			pStep->setName(STEP_CIM_MESSAGE_CLEAR);
+			pStep->setListener(listener);
+			pStep->setWriteSignalDev(0x54);
+			pStep->setClearCimMessageDev(0x13);
+			if (pEquipment->addStep(0x353, pStep) != 0) {
+				delete pStep;
+			}
+		}
 
 		pEquipment->init();
 		LOGE("已添加“EFEM(ROBOT)”.");
diff --git a/SourceCode/Bond/Servo/Common.h b/SourceCode/Bond/Servo/Common.h
index 05824ae..fc0c568 100644
--- a/SourceCode/Bond/Servo/Common.h
+++ b/SourceCode/Bond/Servo/Common.h
@@ -65,6 +65,8 @@
 #define STEP_PROCESS			_T("EQProcess")
 #define STEP_CIM_MODE_CHANGE	_T("EQCimModeChange")
 #define STEP_EQ_MODE_CHANGE		_T("EQModeChange")
+#define STEP_CIM_MESSAGE_CMD	_T("EQCimMessageCmd")
+#define STEP_CIM_MESSAGE_CLEAR	_T("EQCimMessageClear")
 
 
 #define BASE_ALARM_EFEM		10000
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj b/SourceCode/Bond/Servo/Servo.vcxproj
index 05ab35b..4c7c4de 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj
+++ b/SourceCode/Bond/Servo/Servo.vcxproj
@@ -205,6 +205,8 @@
     <ClInclude Include="CCLinkPerformance\CCLinkIEControl.h" />
     <ClInclude Include="CCLinkPerformance\PerformanceMelsec.h" />
     <ClInclude Include="CEqAlarmStep.h" />
+    <ClInclude Include="CEqCimMessageClearStep.h" />
+    <ClInclude Include="CEqCimMessageCmdStep.h" />
     <ClInclude Include="CEqCimModeChangeStep.h" />
     <ClInclude Include="CEqModeChangeStep.h" />
     <ClInclude Include="CEqModeStep.h" />
@@ -253,6 +255,8 @@
     <ClCompile Include="CCLinkPerformance\CCLinkIEControl.cpp" />
     <ClCompile Include="CCLinkPerformance\PerformanceMelsec.cpp" />
     <ClCompile Include="CEqAlarmStep.cpp" />
+    <ClCompile Include="CEqCimMessageClearStep.cpp" />
+    <ClCompile Include="CEqCimMessageCmdStep.cpp" />
     <ClCompile Include="CEqCimModeChangeStep.cpp" />
     <ClCompile Include="CEqModeChangeStep.cpp" />
     <ClCompile Include="CEqModeStep.cpp" />
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj.filters b/SourceCode/Bond/Servo/Servo.vcxproj.filters
index 48f6081..a4aa804 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj.filters
+++ b/SourceCode/Bond/Servo/Servo.vcxproj.filters
@@ -54,6 +54,8 @@
     <ClCompile Include="CPanelEquipment.cpp" />
     <ClCompile Include="ListCtrlEx.cpp" />
     <ClCompile Include="CEqModeChangeStep.cpp" />
+    <ClCompile Include="CEqCimMessageCmdStep.cpp" />
+    <ClCompile Include="CEqCimMessageClearStep.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="AlarmManager.h" />
@@ -106,6 +108,8 @@
     <ClInclude Include="CPanelEquipment.h" />
     <ClInclude Include="ListCtrlEx.h" />
     <ClInclude Include="CEqModeChangeStep.h" />
+    <ClInclude Include="CEqCimMessageCmdStep.h" />
+    <ClInclude Include="CEqCimMessageClearStep.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="Servo.rc" />

--
Gitblit v1.9.3