From e8a27bb203fe2aff70390a5eca002d7438da9b0f Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期三, 22 十月 2025 14:24:34 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang

---
 SourceCode/Bond/Servo/CMaster.h |   40 ++++++++++++++++++++++++++--------------
 1 files changed, 26 insertions(+), 14 deletions(-)

diff --git a/SourceCode/Bond/Servo/CMaster.h b/SourceCode/Bond/Servo/CMaster.h
index 6a17fb1..e2844bd 100644
--- a/SourceCode/Bond/Servo/CMaster.h
+++ b/SourceCode/Bond/Servo/CMaster.h
@@ -1,4 +1,4 @@
-#pragma once
+锘�#pragma once
 #include <list>
 #include "CEquipment.h"
 #include "CEFEM.h"
@@ -15,6 +15,7 @@
 #include "CRobotTask.h"
 #include "ProcessJob.h"
 #include "CControlJob.h"
+#include "../DAQBridge/core/Collector.h"
 
 
 #define CTStep_Unknow                   0
@@ -107,8 +108,9 @@
         int abortCurrentTask();
         int restoreCurrentTask();
         int resendCurrentTask();
-        void setPortType(unsigned int index, BOOL enable, int type, int mode,
+        void setPortTypeEx(unsigned int index, BOOL enable, int type, int mode,
             int cassetteType, int transferMode, BOOL autoChangeEnable);
+        void setPortType(unsigned int index, int type);
         void setPortCassetteType(unsigned int index, SERVO::CassetteType type);
         void setPortEnable(unsigned int index, BOOL bEnable);
         void setCompareMapsBeforeProceeding(BOOL bCompare);
@@ -128,13 +130,15 @@
         CControlJob* getControlJob();
         CLoadPort* getPortWithCarrierId(const std::string& carrierId) const;
         bool saveState() const;
-        bool loadState(const std::string& path);
+        bool loadState();
+        void setStateFile(const std::string& path);
         int getWipGlasses(std::vector<CGlass*>& glasses);
         void test();
         bool moveGlassToBuf(int eqid, int slotNo);
         bool moveGlassToSlot(int eqid, int slotNo);
         int getPortCassetteSnSeed(int port);
         void setPortCassetteSnSeed(int port, int seed);
+        CGlass* getGlass(int scrPort, int scrSlot);
 
     private:
         inline void lock() { EnterCriticalSection(&m_criticalSection); }
@@ -167,7 +171,7 @@
             CEquipment* pTarEq, int nTarSlot, int armNo = 1);
 
     public:
-        // —— IResourceView 覆写 ——(注意 const)
+        // 鈥斺�� IResourceView 瑕嗗啓 鈥斺�旓紙娉ㄦ剰 const锛�
         bool isProcessJobsEmpty() const override;
         bool recipeExists(const std::string& ppid) const override;
         bool carrierPresent(const std::string& carrierId) const override;
@@ -179,7 +183,7 @@
         std::string& getLastErrorText();
 
     public:
-        // 新增函数
+        // 鏂板鍑芥暟
         CProcessJob* acquireNextProcessJob();
         CGlass* acquireNextGlass();
         int acquireGlassToQueue();
@@ -190,10 +194,14 @@
         bool checkAndUpdatePjComplete(CProcessJob* pJob);
         bool checkAndUpdateCjComplete(CControlJob* pJob);
         CProcessJob* getGlassProcessJob(CGlass* pGlass);
-        bool completeControlJob(std::string description);
+        bool completeControlJob();
+        bool forceCompleteControlJob(std::string description);
         bool canCreateControlJob();
         bool canCompleteControlJob();
         bool canDeleteControlJob();
+        
+        // DAQ Bridge閻╃鍙�
+        Collector* getCollector() const { return m_pCollector; }
 
     private:
         CRITICAL_SECTION m_criticalSection;
@@ -206,42 +214,42 @@
         bool m_bBatch;
 
     private:
-        /* 监控比特位的线程*/
+        /* 鐩戞帶姣旂壒浣嶇殑绾跨▼*/
         HANDLE m_hEventReadBitsThreadExit[2];
         HANDLE m_hReadBitsThreadHandle;
         unsigned m_nReadBitsThreadAddr;
 
-        // 调度线程
+        // 璋冨害绾跨▼
         HANDLE m_hDispatchEvent;
         HANDLE m_hEventDispatchThreadExit[2];
         HANDLE m_hDispatchThreadHandle;
         unsigned m_nDispatchThreadAddr;
 
-        // 启动时间,运行时间,状态
+        // 鍚姩鏃堕棿锛岃繍琛屾椂闂达紝鐘舵��
         ULONGLONG m_ullStartTime;
         ULONGLONG m_ullRunTime;
         MASTERSTATE m_state;
 
-        // 当前任务和已完成任务列表
+        // 褰撳墠浠诲姟鍜屽凡瀹屾垚浠诲姟鍒楄〃
         CRobotTask* m_pActiveRobotTask;
         std::list< CRobotTask* > m_listTask;
 
-        // 错误代码
+        // 閿欒浠g爜
         int m_nLastError;
         std::string m_strLastError;
 
-        // 在开始工艺前是否先需要先比较map
+        // 鍦ㄥ紑濮嬪伐鑹哄墠鏄惁鍏堥渶瑕佸厛姣旇緝map
         BOOL m_isCompareMapsBeforeProceeding;
         BOOL m_bJobMode;
 
 
-        // 千传圈数计数
+        // 鍗冧紶鍦堟暟璁℃暟
         int m_nContinuousTransferCount;
         int m_nContinuousTransferStep;
         int m_nContinuousWorkingPort;
         int m_nContinuousWorkingSlot;
 
-        // 新增已经开始处理的ProcessJob列表
+        // 鏂板宸茬粡寮�濮嬪鐞嗙殑ProcessJob鍒楄〃
         std::vector<CProcessJob*> m_inProcesJobs;
         std::vector<CProcessJob*> m_completeProcessJobs;
         std::vector<CGlass*> m_queueGlasses;
@@ -257,6 +265,10 @@
 
         int m_nTestFlag;
         std::list<CGlass*> m_bufGlass;
+
+    private:
+        Collector* m_pCollector = nullptr;
+        void CreateDAQBridgeServer();
     };
 }
 

--
Gitblit v1.9.3