LAPTOP-SNT8I5JK\Boounion
2025-09-11 eaf39ceeef11c5685ddbb840541460e5dc5fccaa
SourceCode/Bond/Servo/CMaster.h
@@ -53,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;
@@ -64,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
@@ -117,6 +124,7 @@
        CLoadPort* getPortWithCarrierId(const std::string& carrierId) const;
        bool saveState() const;
        bool loadState(const std::string& path);
        int getWipGlasses(std::vector<CGlass*>& glasses);
    private:
        inline void lock() { EnterCriticalSection(&m_criticalSection); }
@@ -164,6 +172,11 @@
        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;
@@ -211,6 +224,7 @@
        // 新增已经开始处理的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;
@@ -221,6 +235,8 @@
        SERVO::CControlJob* m_pControlJob;
        std::vector<SERVO::CProcessJob*> m_processJobs;
        std::string m_strStatePath;
        int m_nTestFlag;
    };
}