From 6b80da0fe2a6053b39802a6701db6df0ab1fde24 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 05 九月 2025 17:27:35 +0800
Subject: [PATCH] 1. 添加设备配方参数显示界面

---
 SourceCode/Bond/Servo/CMaster.h |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/CMaster.h b/SourceCode/Bond/Servo/CMaster.h
index 41d4fb0..2d4d697 100644
--- a/SourceCode/Bond/Servo/CMaster.h
+++ b/SourceCode/Bond/Servo/CMaster.h
@@ -39,6 +39,7 @@
         STARTING,
         RUNNING,
         RUNNING_CONTINUOUS_TRANSFER,
+        RUNNING_BATCH,
         STOPPING,
         MSERROR
     };
@@ -52,6 +53,7 @@
     typedef std::function<void(void* pMaster, CRobotTask* pTask, int code)> ONROBOTTASKEVENT;
     typedef std::function<void(void* pMaster, CEquipment* pEquipment, short status, __int64 data)> ONLOADPORTSTATUSCHANGED;
     typedef std::function<void(void* pMaster, int round)> ONCTROUNDEND;
+    typedef std::function<void(void* pMaster, void* pj)> ONPJSTART;
     typedef struct _MasterListener
     {
         ONMASTERSTATECHANGED    onMasterStateChanged;
@@ -63,6 +65,12 @@
         ONROBOTTASKEVENT        onRobotTaskEvent;
         ONLOADPORTSTATUSCHANGED	onLoadPortStatusChanged;
         ONCTROUNDEND            onCTRoundEnd;
+        ONPJSTART               onCjStart;
+        ONPJSTART               onCjEnd;
+        ONPJSTART               onPjStart;
+        ONPJSTART               onPjEnd;
+        ONPJSTART               onPanelStart;
+        ONPJSTART               onPanelEnd;
     } MasterListener;
 
     class CMaster : public IResourceView
@@ -79,6 +87,7 @@
         int term();
         int start();
         int startContinuousTransfer();
+        int startBatch();
         int stop();
         void clearError();
         ULONGLONG getRunTime();
@@ -154,6 +163,20 @@
         bool slotUsable(const std::string& carrierId, uint16_t slot) const override;
         bool ceidDefined(uint32_t ceid) const override;
 
+    public:
+        // 新增函数
+        CProcessJob* acquireNextProcessJob();
+        CGlass* acquireNextGlass();
+        int acquireGlassToQueue();
+        bool addGlassToQueue(CGlass* pGlass);
+        bool glassFromQueueToInPorcess(CGlass* pGlass);
+        bool glassFromInPorcessToComplete(CGlass* pGlass);
+        bool processJobFromInPorcessToComplete(CProcessJob* pProcessJob);
+        bool checkAndUpdatePjComplete(CProcessJob* pJob);
+        bool checkAndUpdateCjComplete(CControlJob* pJob);
+        CProcessJob* getGlassProcessJob(CGlass* pGlass);
+
+
     private:
         CRITICAL_SECTION m_criticalSection;
         MasterListener m_listener;
@@ -162,6 +185,7 @@
         std::string m_strFilepath;
         BOOL m_bDataModify;
         bool m_bContinuousTransfer;
+        bool m_bBatch;
 
     private:
         /* 监控比特位的线程*/
@@ -197,12 +221,21 @@
         int m_nContinuousTransferCount;
         int m_nContinuousTransferStep;
 
+        // 新增已经开始处理的ProcessJob列表
+        std::vector<CProcessJob*> m_inProcesJobs;
+        std::vector<CProcessJob*> m_completeProcessJobs;
+        std::vector<CGlass*> m_queueGlasses;
+        std::vector<CGlass*> m_inProcesGlasses;
+        std::vector<CGlass*> m_completeGlasses;
+
     private:
         bool m_bEnableEventReport;
         bool m_bEnableAlarmReport;
         SERVO::CControlJob* m_pControlJob;
         std::vector<SERVO::CProcessJob*> m_processJobs;
         std::string m_strStatePath;
+
+        int m_nTestFlag;
     };
 }
 

--
Gitblit v1.9.3