LAPTOP-SNT8I5JK\Boounion
2025-05-21 c0d56e6ac7ec15e232fb38c457eefc89cf80e9da
1.Port Command功能实现;
已修改2个文件
162 ■■■■■ 文件已修改
SourceCode/Bond/Servo/CLoadPort.cpp 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/Common.h 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CLoadPort.cpp
@@ -205,6 +205,96 @@
        }
        {
            // port command
            // Port Type Change Command
            static char* pszName[] = { STEP_PORT1_TYPE_CHANGE, STEP_PORT2_TYPE_CHANGE, STEP_PORT3_TYPE_CHANGE, STEP_PORT4_TYPE_CHANGE };
            static int dev[] = { 0x024, 0x02c, 0x034, 0x03c };
            CEqWriteStep* pStep = new CEqWriteStep();
            pStep->setName(pszName[m_nIndex]);
            pStep->setWriteSignalDev(0x100 + m_nIndex);
            pStep->setDataDev(dev[m_nIndex]);
            if (addStep(STEP_ID_PROT1_TYPE_CHANGE_REPLY + m_nIndex, pStep) != 0) {
                delete pStep;
            }
        }
        {
            // port command
            // Port Mode Change Command
            static char* pszName[] = { STEP_PORT1_MODE_CHANGE, STEP_PORT2_MODE_CHANGE, STEP_PORT3_MODE_CHANGE, STEP_PORT4_MODE_CHANGE };
            static int dev[] = { 0x025, 0x02d, 0x035, 0x03d };
            CEqWriteStep* pStep = new CEqWriteStep();
            pStep->setName(pszName[m_nIndex]);
            pStep->setWriteSignalDev(0x108 + m_nIndex);
            pStep->setDataDev(dev[m_nIndex]);
            if (addStep(STEP_ID_PROT1_MODE_CHANGE_REPLY + m_nIndex, pStep) != 0) {
                delete pStep;
            }
        }
        {
            // port command
            // Port Transfer Mode Change Command
            static char* pszName[] = { STEP_PORT1_TRANSFER_MODE_CHANGE, STEP_PORT2_TRANSFER_MODE_CHANGE, STEP_PORT3_TRANSFER_MODE_CHANGE, STEP_PORT4_TRANSFER_MODE_CHANGE };
            static int dev[] = { 0x028, 0x030, 0x038, 0x040 };
            CEqWriteStep* pStep = new CEqWriteStep();
            pStep->setName(pszName[m_nIndex]);
            pStep->setWriteSignalDev(0x110 + m_nIndex);
            pStep->setDataDev(dev[m_nIndex]);
            if (addStep(STEP_ID_PROT1_TRANSFER_MODE_CHANGE_REPLY + m_nIndex, pStep) != 0) {
                delete pStep;
            }
        }
        {
            // port command
            // Port Enable Mode Change Command
            static char* pszName[] = { STEP_PORT1_ENABLE_MODE_CHANGE, STEP_PORT2_ENABLE_MODE_CHANGE, STEP_PORT3_ENABLE_MODE_CHANGE, STEP_PORT4_ENABLE_MODE_CHANGE };
            static int dev[] = { 0x029, 0x031, 0x039, 0x041 };
            CEqWriteStep* pStep = new CEqWriteStep();
            pStep->setName(pszName[m_nIndex]);
            pStep->setWriteSignalDev(0x118 + m_nIndex);
            pStep->setDataDev(dev[m_nIndex]);
            if (addStep(STEP_ID_PROT1_ENABLE_MODE_CHANGE_REPLY + m_nIndex, pStep) != 0) {
                delete pStep;
            }
        }
        {
            // port command
            // Port Type Auto Change Command
            static char* pszName[] = { STEP_PORT1_TYPE_AUTO_CHANGE, STEP_PORT2_TYPE_AUTO_CHANGE, STEP_PORT3_TYPE_AUTO_CHANGE, STEP_PORT4_TYPE_AUTO_CHANGE };
            static int dev[] = { 0x02A, 0x032, 0x03A, 0x042 };
            CEqWriteStep* pStep = new CEqWriteStep();
            pStep->setName(pszName[m_nIndex]);
            pStep->setWriteSignalDev(0x120 + m_nIndex);
            pStep->setDataDev(dev[m_nIndex]);
            if (addStep(STEP_ID_PROT1_TYPE_AUTO_CHANGE_REPLY + m_nIndex, pStep) != 0) {
                delete pStep;
            }
        }
        {
            // port command
            // Port Cassette Type Change Command
            static char* pszName[] = { STEP_PORT1_CASSETTE_TYPE_CHANGE, STEP_PORT2_CASSETTE_TYPE_CHANGE, STEP_PORT3_CASSETTE_TYPE_CHANGE, STEP_PORT4_CASSETTE_TYPE_CHANGE };
            static int dev[] = { 0x026, 0x02E, 0x036, 0x03E };
            CEqWriteStep* pStep = new CEqWriteStep();
            pStep->setName(pszName[m_nIndex]);
            pStep->setWriteSignalDev(0x128 + m_nIndex);
            pStep->setDataDev(dev[m_nIndex]);
            if (addStep(STEP_ID_PROT1_TYPE_AUTO_CHANGE_REPLY + m_nIndex, pStep) != 0) {
                delete pStep;
            }
        }
        {
            char* pszName[6][4] = { 
                {STEP_EQ_PORT1_EMPTY, STEP_EQ_PORT2_EMPTY, STEP_EQ_PORT3_EMPTY, STEP_EQ_PORT4_EMPTY},
                {STEP_EQ_PORT1_LOAD_EADY, STEP_EQ_PORT2_LOAD_EADY, STEP_EQ_PORT3_LOAD_EADY, STEP_EQ_PORT4_LOAD_EADY},
@@ -547,6 +637,27 @@
        CHECK_READ_STEP_SIGNAL2(transferMode[m_nIndex], pszData, size);
        CHECK_READ_STEP_SIGNAL2(enable[m_nIndex], pszData, size);
        CHECK_READ_STEP_SIGNAL2(autoType[m_nIndex], pszData, size);
        static int typeReply[] = { STEP_ID_PROT1_TYPE_CHANGE_REPLY, STEP_ID_PROT2_TYPE_CHANGE_REPLY,
            STEP_ID_PROT3_TYPE_CHANGE_REPLY, STEP_ID_PROT4_TYPE_CHANGE_REPLY };
        static int modeReply[] = { STEP_ID_PROT1_MODE_CHANGE_REPLY, STEP_ID_PROT2_MODE_CHANGE_REPLY,
            STEP_ID_PROT3_MODE_CHANGE_REPLY, STEP_ID_PROT4_MODE_CHANGE_REPLY };
        static int transferModeReply[] = { STEP_ID_PROT1_TRANSFER_MODE_CHANGE_REPLY, STEP_ID_PROT2_TRANSFER_MODE_CHANGE_REPLY,
            STEP_ID_PROT3_TRANSFER_MODE_CHANGE_REPLY, STEP_ID_PROT4_TRANSFER_MODE_CHANGE_REPLY };
        static int enableModeReply[] = { STEP_ID_PROT1_ENABLE_MODE_CHANGE_REPLY, STEP_ID_PROT2_ENABLE_MODE_CHANGE_REPLY,
            STEP_ID_PROT3_ENABLE_MODE_CHANGE_REPLY, STEP_ID_PROT4_ENABLE_MODE_CHANGE_REPLY };
        static int typeAutoReply[] = { STEP_ID_PROT1_TYPE_AUTO_CHANGE_REPLY, STEP_ID_PROT2_TYPE_AUTO_CHANGE_REPLY,
            STEP_ID_PROT3_TYPE_AUTO_CHANGE_REPLY, STEP_ID_PROT4_TYPE_AUTO_CHANGE_REPLY };
        static int cassetteTypeReply[] = { STEP_ID_PROT1_CASSETTE_TYPE_CHANGE_REPLY, STEP_ID_PROT2_CASSETTE_TYPE_CHANGE_REPLY,
            STEP_ID_PROT3_CASSETTE_TYPE_CHANGE_REPLY, STEP_ID_PROT4_CASSETTE_TYPE_CHANGE_REPLY };
        CHECK_READ_STEP_SIGNAL2(typeReply[m_nIndex], pszData, size);
        CHECK_READ_STEP_SIGNAL2(modeReply[m_nIndex], pszData, size);
        CHECK_READ_STEP_SIGNAL2(transferModeReply[m_nIndex], pszData, size);
        CHECK_READ_STEP_SIGNAL2(enableModeReply[m_nIndex], pszData, size);
        CHECK_READ_STEP_SIGNAL2(typeAutoReply[m_nIndex], pszData, size);
        CHECK_READ_STEP_SIGNAL2(cassetteTypeReply[m_nIndex], pszData, size);
    }
    int CLoadPort::decodePortStatusReport(CStep* pStep, const char* pszData, size_t size)
SourceCode/Bond/Servo/Common.h
@@ -211,7 +211,30 @@
#define STEP_EQ_DISPATCHINT_MODE_CHANGE    _T("EQDispatchingModeChangeCommand")
#define STEP_EFEM_ROBOT_CMD                _T("EFEMRobotCmd")
#define STEP_EFEM_IN_OP_MODE_CHANGE        _T("EFEMIndexerOperationModeChangeCommand")
#define STEP_PORT1_TYPE_CHANGE            _T("Port1TypeChange")
#define STEP_PORT2_TYPE_CHANGE            _T("Port2TypeChange")
#define STEP_PORT3_TYPE_CHANGE            _T("Port3TypeChange")
#define STEP_PORT4_TYPE_CHANGE            _T("Port4TypeChange")
#define STEP_PORT1_MODE_CHANGE            _T("Port1ModeChange")
#define STEP_PORT2_MODE_CHANGE            _T("Port2ModeChange")
#define STEP_PORT3_MODE_CHANGE            _T("Port3ModeChange")
#define STEP_PORT4_MODE_CHANGE            _T("Port4ModeChange")
#define STEP_PORT1_TRANSFER_MODE_CHANGE    _T("Port1TransferModeChange")
#define STEP_PORT2_TRANSFER_MODE_CHANGE    _T("Port2TransferModeChange")
#define STEP_PORT3_TRANSFER_MODE_CHANGE    _T("Port3TransferModeChange")
#define STEP_PORT4_TRANSFER_MODE_CHANGE    _T("Port4TransferModeChange")
#define STEP_PORT1_ENABLE_MODE_CHANGE    _T("Port1EnableModeChange")
#define STEP_PORT2_ENABLE_MODE_CHANGE    _T("Port2EnableModeChange")
#define STEP_PORT3_ENABLE_MODE_CHANGE    _T("Port3EnableModeChange")
#define STEP_PORT4_ENABLE_MODE_CHANGE    _T("Port4EnableModeChange")
#define STEP_PORT1_TYPE_AUTO_CHANGE        _T("Port1TypeAutoChange")
#define STEP_PORT2_TYPE_AUTO_CHANGE        _T("Port2TypeAutoChange")
#define STEP_PORT3_TYPE_AUTO_CHANGE        _T("Port3TypeAutoChange")
#define STEP_PORT4_TYPE_AUTO_CHANGE        _T("Port4TypeAutoChange")
#define STEP_PORT1_CASSETTE_TYPE_CHANGE    _T("Port1CassetteTypeChange")
#define STEP_PORT2_CASSETTE_TYPE_CHANGE    _T("Port2CassetteTypeChange")
#define STEP_PORT3_CASSETTE_TYPE_CHANGE    _T("Port3CassetteTypeChange")
#define STEP_PORT4_CASSETTE_TYPE_CHANGE    _T("Port4CassetteTypeChange")
/* Step ID */
@@ -334,7 +357,31 @@
#define STEP_ID_PORT4_INUSE                        0x653
#define STEP_ID_PORT4_UNLOAD_READY                0x65b
#define STEP_ID_PORT4_BLOCKED                    0x663
#define STEP_ID_ROBOT_CMD_REPLY                    0x6b0
#define STEP_ID_PROT1_TYPE_CHANGE_REPLY            0x670
#define STEP_ID_PROT2_TYPE_CHANGE_REPLY            0x671
#define STEP_ID_PROT3_TYPE_CHANGE_REPLY            0x672
#define STEP_ID_PROT4_TYPE_CHANGE_REPLY            0x673
#define STEP_ID_PROT1_MODE_CHANGE_REPLY            0x678
#define STEP_ID_PROT2_MODE_CHANGE_REPLY            0x679
#define STEP_ID_PROT3_MODE_CHANGE_REPLY            0x67A
#define STEP_ID_PROT4_MODE_CHANGE_REPLY            0x67B
#define STEP_ID_PROT1_TRANSFER_MODE_CHANGE_REPLY    0x680
#define STEP_ID_PROT2_TRANSFER_MODE_CHANGE_REPLY    0x681
#define STEP_ID_PROT3_TRANSFER_MODE_CHANGE_REPLY    0x682
#define STEP_ID_PROT4_TRANSFER_MODE_CHANGE_REPLY    0x683
#define STEP_ID_PROT1_ENABLE_MODE_CHANGE_REPLY        0x688
#define STEP_ID_PROT2_ENABLE_MODE_CHANGE_REPLY        0x689
#define STEP_ID_PROT3_ENABLE_MODE_CHANGE_REPLY        0x68A
#define STEP_ID_PROT4_ENABLE_MODE_CHANGE_REPLY        0x68B
#define STEP_ID_PROT1_TYPE_AUTO_CHANGE_REPLY        0x690
#define STEP_ID_PROT2_TYPE_AUTO_CHANGE_REPLY        0x691
#define STEP_ID_PROT3_TYPE_AUTO_CHANGE_REPLY        0x692
#define STEP_ID_PROT4_TYPE_AUTO_CHANGE_REPLY        0x693
#define STEP_ID_PROT1_CASSETTE_TYPE_CHANGE_REPLY    0x698
#define STEP_ID_PROT2_CASSETTE_TYPE_CHANGE_REPLY    0x699
#define STEP_ID_PROT3_CASSETTE_TYPE_CHANGE_REPLY    0x69A
#define STEP_ID_PROT4_CASSETTE_TYPE_CHANGE_REPLY    0x69B
#define STEP_ID_ROBOT_CMD_REPLY                        0x6b0