SourceCode/Bond/Servo/CMaster.h
@@ -33,6 +33,10 @@
#define CTStep_begin                    CTStep_LoadPort_Aligner
#define CTStep_end                      CTStep_Measurement_LoadPort
#define ER_CODE_NOERROR                0
#define ER_CODE_OPERATION_MODE_FAIL    -1
#define ER_CODE_AOI_NG                 -2
namespace SERVO {
    enum class MASTERSTATE {
        READY = 0,
@@ -41,7 +45,8 @@
        RUNNING_CONTINUOUS_TRANSFER,
        RUNNING_BATCH,
        STOPPING,
        MSERROR
        MSERROR,
        ATHERERROR
    };
    typedef std::function<void(void* pMaster, MASTERSTATE state)> ONMASTERSTATECHANGED;
@@ -88,7 +93,7 @@
        int start();
        int startContinuousTransfer();
        int startBatch();
        int stop();
        int stop(int nErCode = ER_CODE_NOERROR);
        void clearError();
        ULONGLONG getRunTime();
        MASTERSTATE getState();
@@ -124,6 +129,10 @@
        CLoadPort* getPortWithCarrierId(const std::string& carrierId) const;
        bool saveState() const;
        bool loadState(const std::string& path);
        int getWipGlasses(std::vector<CGlass*>& glasses);
        void test();
        int getPortCassetteSnSeed(int port);
        void setPortCassetteSnSeed(int port, int seed);
    private:
        inline void lock() { EnterCriticalSection(&m_criticalSection); }
@@ -164,6 +173,10 @@
        bool ceidDefined(uint32_t ceid) const override;
    public:
        int getLastError();
        std::string& getLastErrorText();
    public:
        // 新增函数
        CProcessJob* acquireNextProcessJob();
        CGlass* acquireNextGlass();
@@ -171,7 +184,9 @@
        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);
@@ -221,6 +236,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;