LAPTOP-SNT8I5JK\Boounion
2025-05-20 ed1e6f12a1568e6a581211ac39daaa2746c9ed24
1.IndexerOprationMode
已添加1个文件
已修改13个文件
98 ■■■■■ 文件已修改
Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.6.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CBakeCooling.cpp 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CBakeCooling.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CBonder.cpp 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CBonder.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEFEM.cpp 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEFEM.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEquipment.cpp 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEquipment.h 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CMeasurement.cpp 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CMeasurement.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CVacuumBake.cpp 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CVacuumBake.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/Common.h 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.6.xlsx
Binary files differ
SourceCode/Bond/Servo/CBakeCooling.cpp
@@ -68,4 +68,9 @@
        return (m_glassList.size() < 4);
    }
    int CBakeCooling::getIndexerOperationModeBaseValue()
    {
        return 25000;
    }
}
SourceCode/Bond/Servo/CBakeCooling.h
@@ -20,6 +20,7 @@
        virtual void getAttributeVector(CAttributeVector& attrubutes);
        virtual int recvIntent(CPin* pPin, CIntent* pIntent);
        virtual BOOL glassWillArrive(CGlass* pGlass);
        virtual int getIndexerOperationModeBaseValue();
    };
}
SourceCode/Bond/Servo/CBonder.cpp
@@ -448,4 +448,9 @@
        return 0;
    }
    int CBonder::getIndexerOperationModeBaseValue()
    {
        return m_nIndex == 0 ? 15000 : 20000;
    }
}
SourceCode/Bond/Servo/CBonder.h
@@ -23,6 +23,7 @@
        virtual BOOL glassWillArrive(CGlass* pGlass);
        virtual BOOL onPreStoredJob(int port, CJobDataB* pJobDataB);
        virtual int onProcessData(CProcessData* pProcessData);
        virtual int getIndexerOperationModeBaseValue();
    public:
        void setIndex(unsigned int index);
SourceCode/Bond/Servo/CEFEM.cpp
@@ -454,6 +454,18 @@
                delete pStep;
            }
        }
        {
            // Indexer Operation Mode Change
            CEqWriteStep* pStep = new CEqWriteStep();
            pStep->setName(STEP_EFEM_IN_OP_MODE_CHANGE);
            pStep->setWriteSignalDev(0x070);
            pStep->setDataDev(0x023);
            if (addStep(STEP_ID_IN_OP_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
    }
    int CEFEM::onStepEvent(CStep* pStep, int code)
@@ -603,4 +615,9 @@
        return -1;
    }
    int CEFEM::getIndexerOperationModeBaseValue()
    {
        return 10000;
    }
}
SourceCode/Bond/Servo/CEFEM.h
@@ -31,6 +31,7 @@
        virtual int onSentOutJob(int port, CJobDataS* pJobDataS);
        virtual int onFetchedOutJob(int port, CJobDataB* pJobDataB);
        virtual int onStoredJob(int port, CJobDataB* pJobDataB);
        virtual int getIndexerOperationModeBaseValue();
    public:
        void setPort(unsigned int index, CLoadPort* pPort);
SourceCode/Bond/Servo/CEquipment.cpp
@@ -1090,6 +1090,34 @@
        return 0;
    }
    int CEquipment::indexerOperationModeChange(IDNEXER_OPERATION_MODE mode, ONWRITED onWritedBlock/* = nullptr*/)
    {
        SERVO::CEqWriteStep* pStep = (SERVO::CEqWriteStep*)getStepWithName(STEP_EFEM_IN_OP_MODE_CHANGE);
        if (pStep == nullptr) {
            return -1;
        }
        unsigned short operationMode = (unsigned short)(mode + getIndexerOperationModeBaseValue());
        LOGI("<CEquipment-%s>准备设置indexerOperationMode<%d>", m_strName.c_str(), (int)mode);
        if (onWritedBlock != nullptr) {
            pStep->writeShort(operationMode, onWritedBlock);
        }
        else {
            pStep->writeShort(operationMode, [&, mode](int code) -> int {
                if (code == WOK) {
                    LOGI("<CEquipment-%s>设置indexerOperationMode成功.", m_strName.c_str());
                }
                else {
                    LOGI("<CEquipment-%s>设置indexerOperationMode失败,code:%d", m_strName.c_str(), code);
                }
                return 0;
                });
        }
        return 0;
    }
    int CEquipment::masterRecipeListRequest(short unitNo)
    {
        SERVO::CEqWriteStep* pStep = (SERVO::CEqWriteStep*)getStepWithName(STEP_EQ_MASTER_RECIPE_LIST_REQ);
@@ -1364,6 +1392,11 @@
        return 0;
    }
    int CEquipment::getIndexerOperationModeBaseValue()
    {
        return 0;
    }
    int CEquipment::addJobDataB(CJobDataB* pJobDataB)
    {
        // 添加之前先删除旧的,以免数据重复
SourceCode/Bond/Servo/CEquipment.h
@@ -73,6 +73,18 @@
        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, 
@@ -158,6 +170,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();
@@ -178,6 +191,9 @@
        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
SourceCode/Bond/Servo/CMeasurement.cpp
@@ -64,4 +64,9 @@
        return m_glassList.empty();
    }
    int CMeasurement::getIndexerOperationModeBaseValue()
    {
        return 35000;
    }
}
SourceCode/Bond/Servo/CMeasurement.h
@@ -20,6 +20,8 @@
        virtual void getAttributeVector(CAttributeVector& attrubutes);
        virtual int recvIntent(CPin* pPin, CIntent* pIntent);
        virtual BOOL glassWillArrive(CGlass* pGlass);
        virtual int getIndexerOperationModeBaseValue();
    };
}
SourceCode/Bond/Servo/CVacuumBake.cpp
@@ -92,4 +92,9 @@
        return TRUE;
    }
    int CVacuumBake::getIndexerOperationModeBaseValue()
    {
        return 30000;
    }
}
SourceCode/Bond/Servo/CVacuumBake.h
@@ -21,6 +21,8 @@
        virtual int recvIntent(CPin* pPin, CIntent* pIntent);
        virtual BOOL glassWillArrive(CGlass* pGlass);
        virtual BOOL onPreStoredJob(int port, CJobDataB* pJobDataB);
        virtual int getIndexerOperationModeBaseValue();
    };
}
SourceCode/Bond/Servo/Common.h
@@ -209,6 +209,7 @@
#define STEP_EQ_STORED_JOB15            _T("EQStoredJobReport15")
#define STEP_EQ_DISPATCHINT_MODE_CHANGE    _T("EQDispatchingModeChangeCommand")
#define STEP_EFEM_ROBOT_CMD                _T("EFEMRobotCmd")
#define STEP_EFEM_IN_OP_MODE_CHANGE        _T("EFEMIndexerOperationModeChangeCommand")
@@ -282,7 +283,8 @@
#define STEP_ID_FETCHED_OUT_JOB_REPORT13        0x5BB
#define STEP_ID_FETCHED_OUT_JOB_REPORT14        0x5BC
#define STEP_ID_FETCHED_OUT_JOB_REPORT15        0x5BD
#define STEP_ID_DISPATCHING_MODE_CHANGE_REPLY    0x5E2
#define STEP_ID_IN_OP_CMD_REPLY                    0x5F0
#define STEP_ID_DISPATCHING_MODE_CHANGE_REPLY    0x5F1
#define STEP_ID_PORT1_TYPE_CHANGE                0x600
#define STEP_ID_PORT2_TYPE_CHANGE                0x601
#define STEP_ID_PORT3_TYPE_CHANGE                0x602
@@ -334,6 +336,7 @@
#define STEP_ID_ROBOT_CMD_REPLY                    0x6b0
/* base alarm */
#define BASE_ALARM_EFEM        10000
#define BASE_ALARM_BONDER1    20000