From ec2b63378e47ac0aba4e0265b63a5cd26e373a32 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 26 五月 2025 18:02:57 +0800
Subject: [PATCH] 1.添加了状态栏;

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

diff --git a/SourceCode/Bond/Servo/CEquipment.h b/SourceCode/Bond/Servo/CEquipment.h
index fe6ed40..6357114 100644
--- a/SourceCode/Bond/Servo/CEquipment.h
+++ b/SourceCode/Bond/Servo/CEquipment.h
@@ -32,12 +32,14 @@
 #include "CJobDataC.h"
 #include "CJobDataS.h"
 #include "CProcessData.h"
+#include "CPortStatusReport.h"
 
 
 namespace SERVO {
 #define BLOCK_BUFFER_MAX			1024
 #define ALIVE_TIMEOUT				15
 #define VCR_MAX						1
+#define ARM_ALL						99
 
 	typedef std::function<void(void* pEiuipment, BOOL bAlive)> ONALIVE;
 	typedef std::function<void(void* pEiuipment, int code)> ONDATACHANGED;
@@ -67,6 +69,56 @@
 		int count;
 		BOOL alive;
 	} ALIVE;
+
+	enum DISPATCHING_MODE {
+		EAS = 1,
+		Local = 2
+	};
+
+	enum IDNEXER_OPERATION_MODE {
+		Normal = 1,
+		Clear_Out = 2,
+		Cold_Run = 2,
+		Start = 10,
+		Stop = 11,
+		Pause = 12,
+		Resume = 13,
+		Abort = 14,
+		Cancel = 15,
+	};
+
+	enum RCMD {
+		Robot_home = 1,
+		Transfer, 
+		Move,
+		Get,
+		Put,
+		One_Action_Exchange,
+		Two_Action_Exchange,
+		Command_Clear,
+		Batch_get,
+		Batch_put
+	};
+
+	enum VCR_Reply_Code {
+		OK = 1,
+		NG,
+		Job_Data_Request,
+		VCR_Mismatch
+	};
+
+	// Robot cmd param
+#define ROBOT_CMD_PARAM_SIZE		16			/* 防止以后修改ROBOT_CMD_PARAM为不是4的整数倍 */
+	typedef struct _ROBOT_CMD_PARAM {
+		short sequenceNo;
+		short rcmd;
+		short armNo;
+		short getPosition;
+		short putPosition;
+		short getSlotNo;
+		short putSlotNo;
+		short subCmd;
+	} ROBOT_CMD_PARAM;
 
 	class CEquipment
 	{
@@ -127,6 +179,7 @@
 		virtual BOOL onPreStoredJob(int port, CJobDataB* pJobDataB);
 		virtual int onStoredJob(int port, CJobDataB* pJobDataB);
 		virtual int onProcessData(CProcessData* pProcessData);
+		virtual int getIndexerOperationModeBaseValue();
 		void getGlassList(std::list<CGlass*>& list);
 		CGlass* getGlassFromList(const char* pszId);
 		CGlass* getFrontGlass();
@@ -146,7 +199,11 @@
 		int setCimMessage(const char* pszMessage, short id, short nTouchPanelNo);
 		int clearCimMessage(short id, short nTouchPanelNo);
 		int setDateTime(short year, short month, short day, short hour, short minute, short second);
-		
+		int setDispatchingMode(DISPATCHING_MODE mode, ONWRITED onWritedBlock = nullptr);
+		int indexerOperationModeChange(IDNEXER_OPERATION_MODE mode, ONWRITED onWritedBlock = nullptr);
+
+
+
 		// 请求主配方列表
 		// unitNo: 0:local; Others:unit No
 		int masterRecipeListRequest(short unitNo);
@@ -184,6 +241,7 @@
 		int decodeSentOutJobReport(CStep* pStep, int port, 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);
+		int decodeVCREventReport(CStep* pStep, const char* pszData, size_t size);
 		int addJobDataB(CJobDataB* pJobDataB);
 		int removeJobDataB(int nCassetteSequenceNo, int nJobSequenceNo);
 		CJobDataB* getJobDataB(int nCassetteSequenceNo, int nJobSequenceNo);

--
Gitblit v1.9.3