From d68541dce155a682f65b7c3fbfbfbeef17ea5b8f Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 12 五月 2025 12:00:41 +0800
Subject: [PATCH] 1.StoredJob, Fetched out Job实现; 2.CStep增加定制的Attribute, 以便通过的Step不使用getAttributeVector也能添加不一样的Attribute;

---
 SourceCode/Bond/Servo/CEquipment.h |   27 ++++++++++++++++++++++++++-
 1 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/SourceCode/Bond/Servo/CEquipment.h b/SourceCode/Bond/Servo/CEquipment.h
index 1e6d326..22a6a52 100644
--- a/SourceCode/Bond/Servo/CEquipment.h
+++ b/SourceCode/Bond/Servo/CEquipment.h
@@ -27,6 +27,10 @@
 #include <list>
 #include "CGlass.h"
 #include "CRecipesManager.h"
+#include "CJobDataA.h"
+#include "CJobDataB.h"
+#include "CJobDataC.h"
+#include "CJobDataS.h"
 
 
 namespace SERVO {
@@ -74,6 +78,8 @@
 		virtual const char* getClassName() = 0;
 		virtual void setListener(EquipmentListener listener);
 		void setCcLink(CCCLinkIEControl* pCcLink);
+		virtual BOOL isArm() { return FALSE; };
+		void setArm(CEquipment* pEquipment);
 		void setBaseAlarmId(int nBaseId);
 		int getBaseAlarmId();
 		void setID(int nID);
@@ -110,6 +116,8 @@
 		virtual BOOL glassWillArrive(CGlass* pGlass);
 		virtual int outputGlass(int port);
 		virtual int glassArrived(CGlass* pGlass);
+		virtual int onFetchedOut(int port, const char* pszGlassId);
+		virtual int onStore(int port, const char* pszGlassId);
 		void getGlassList(std::list<CGlass*>& list);
 		CGlass* getFrontGlass();
 		BOOL removeClass(CGlass* pGlass);
@@ -133,6 +141,17 @@
 		// unitNo: 0:local; Others:unit No
 		int masterRecipeListRequest(short unitNo);
 
+		// 请求配方参数
+		// masterRecipeId: 主配方id
+		// localRecipeId: 本地配方id
+		// unitNo: 0:local; Others:unit No
+		int recipeParameterRequest(short masterRecipeId, short localRecipeId, short unitNo);
+
+	public:
+		int fetchedOut(const char* pszGlassId);
+		int storedJob(const char* pszGlassId);
+		BOOL isGlassListEmpty();
+
 
 	// 以下为从CC-Link读取到的Bit标志位检测函数
 	public:
@@ -150,7 +169,10 @@
 		BOOL isBitOn(const char* pszData, size_t size, int index);
 		inline BOOL equalBool(BOOL b1, BOOL b2);
 		void addGlassToList(CGlass* pGlass);
-		int decodeRecipeListReport(const char* pszData, size_t size);
+		short decodeRecipeListReport(const char* pszData, size_t size);
+		short decodeRecipeParameterReport(const char* pszData, size_t size);
+		int decodeFetchedOutJobReport(CStep* pStep, int port, const char* pszData, size_t size);
+		int decodeStoredJobReport(CStep* pStep, int port, const char* pszData, size_t size);
 
 	protected:
 		EquipmentListener m_listener;
@@ -181,6 +203,9 @@
 		std::map<unsigned int, CStep*> m_mapStep;
 		int m_nBaseAlarmId;
 		CRecipesManager m_recipesManager;
+
+	private:
+		CEquipment* m_pArm;
 	};
 }
 

--
Gitblit v1.9.3