LAPTOP-SNT8I5JK\Boounion
2025-04-25 91aa55602d295902f593972dd2065422b4b93557
1.map地址有修改,重新整理,待测试。
已添加1个文件
已修改3个文件
761 ■■■■ 文件已修改
Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.4(1).xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEquipment.cpp 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CMaster.cpp 577 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/Common.h 95 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.4(1).xlsx
Binary files differ
SourceCode/Bond/Servo/CEquipment.cpp
@@ -311,7 +311,7 @@
        // 以下解释和处理数据
        BOOL bFlag;
        int index = 0x340;
        int index = 0x840;
        // alive
@@ -370,62 +370,63 @@
        // 以下根据信号做流程处理
        // Equipment Mode Change Report(0x360)
        // Equipment Status Change Report(0x361)
        // Equipment Alarm Change Report(0x362 ~ 0x366)
        for (int i = 0; i < 7; i++) {
            CHECK_READ_STEP_SIGNAL(0x360 + i, pszData, size);
            CHECK_READ_STEP_SIGNAL(STEP_ID_EQMODE_CHANGED + i, pszData, size);
        }
        // CIM Mode
        CHECK_WRITE_STEP_SIGNAL(0x350, pszData, size);
        CHECK_WRITE_STEP_SIGNAL(STEP_ID_CIMMODE_CHANGED_CMD_REPLY, pszData, size);
        // CIM Message Set
        CHECK_WRITE_STEP_SIGNAL(0x351, pszData, size);
        // CIM Message Set cmd reply
        CHECK_WRITE_STEP_SIGNAL(STEP_ID_CIM_MSG_SET_CMD_REPLY, pszData, size);
        // CIM Message Clear
        CHECK_WRITE_STEP_SIGNAL(0x352, pszData, size);
        // CIM Message Clear cmd reply
        CHECK_WRITE_STEP_SIGNAL(STEP_ID_CIM_MSG_CLEAR_CMD_REPLY, pszData, size);
        // Datetime set cmd reply
        CHECK_WRITE_STEP_SIGNAL(STEP_ID_DATETIME_SET_CMD_REPLY, pszData, size);
        // vcr enable cmd reply
        CHECK_WRITE_STEP_SIGNAL(STEP_ID_VCR_ENABLE_CMD_REPLY, pszData, size);
        // EQ mode change cmd reply
        CHECK_WRITE_STEP_SIGNAL(STEP_ID_EQMODE_CHANGE_CMD_REPLY, pszData, size);
        // CIM Message Confirm
        CHECK_READ_STEP_SIGNAL(0x369, pszData, size);
        // EQ Mode
        CHECK_WRITE_STEP_SIGNAL(0x355, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_CIM_MSG_CONFIRM_REPORT, pszData, size);
        // EQ Job Event
        CHECK_READ_STEP_SIGNAL(0x380, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x381, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x386, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x387, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_RECIVE_JOB_UPS1, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_RECIVE_JOB_UPS2, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_SENT_OUT_JOB_DOWNS1, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_SENT_OUT_JOB_DOWNS2, pszData, size);
        // Port1 ~ Port4
        CHECK_READ_STEP_SIGNAL(0x3e0, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3e1, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3e2, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3e3, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3e8, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3e9, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3ea, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3eb, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3f0, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3f1, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3f2, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3f3, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3f8, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3f9, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3fa, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x3fb, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x400, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x401, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x402, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x403, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x408, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x409, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x40a, pszData, size);
        CHECK_READ_STEP_SIGNAL(0x40b, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT1_TYPE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT2_TYPE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT3_TYPE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT4_TYPE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT1_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT2_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT3_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT4_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT1_CASSETTE_TYPE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT2_CASSETTE_TYPE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT3_CASSETTE_TYPE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT4_CASSETTE_TYPE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT1_TRANSFER_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT2_TRANSFER_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT3_TRANSFER_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT4_TRANSFER_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT1_ENABLE_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT2_ENABLE_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT3_ENABLE_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT4_ENABLE_MODE_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT1_TYPE_AUTO_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT2_TYPE_AUTO_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT3_TYPE_AUTO_CHANGE, pszData, size);
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT4_TYPE_AUTO_CHANGE, pszData, size);
        // CEqCassetteTranserStateStep
        CHECK_READ_STEP_SIGNAL(STEP_ID_PORT1_CASSETTIE_EMPTY, pszData, size);
SourceCode/Bond/Servo/CMaster.cpp
@@ -327,7 +327,7 @@
        pEquipment->setBaseAlarmId(BASE_ALARM_EFEM);
        pEquipment->setName("EFEM(ROBOT)");
        pEquipment->setDescription("EFEM(ROBOT).");
        pEquipment->setReadBitBlock(0x4000, 0x45ff);
        pEquipment->setReadBitBlock(0x4000, 0x4aff);
        pEquipment->setStation(0, 255);
        addToEquipmentList(pEquipment);
@@ -336,380 +336,389 @@
        {
            CEqModeStep* pStep = new CEqModeStep();
            pStep->setName(STEP_MODE);
            pStep->setWriteSignalDev(0x30);
            pStep->setModeDev(0x4a8c);
            if (pEquipment->addStep(0x360, pStep) != 0) {
            pStep->setWriteSignalDev(0x50);
            pStep->setModeDev(0x6c7d);
            if (pEquipment->addStep(STEP_ID_EQMODE_CHANGED, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqStatusStep* pStep = new CEqStatusStep();
            pStep->setName(STEP_STATUS);
            pStep->setWriteSignalDev(0x31);
            pStep->setStatusDev(0x4a68);
            if (pEquipment->addStep(0x361, pStep) != 0) {
            pStep->setWriteSignalDev(0x51);
            pStep->setStatusDev(0x6c59);
            if (pEquipment->addStep(STEP_ID_EQSTATUS_CHANGED, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqAlarmStep* pStep = new CEqAlarmStep();
            pStep->setName(STEP_ALARM_BLOCK1);
            pStep->setWriteSignalDev(0x32);
            pStep->setAlarmDev(0x4c1d);
            if (pEquipment->addStep(0x362, pStep) != 0) {
            pStep->setWriteSignalDev(0x52);
            pStep->setAlarmDev(0x6e0e);
            if (pEquipment->addStep(STEP_ID_EQALARM1, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqAlarmStep* pStep = new CEqAlarmStep();
            pStep->setName(STEP_ALARM_BLOCK2);
            pStep->setWriteSignalDev(0x33);
            pStep->setAlarmDev(0x4c4a);
            if (pEquipment->addStep(0x363, pStep) != 0) {
            pStep->setWriteSignalDev(0x53);
            pStep->setAlarmDev(0x6e3b);
            if (pEquipment->addStep(STEP_ID_EQALARM2, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqAlarmStep* pStep = new CEqAlarmStep();
            pStep->setName(STEP_ALARM_BLOCK3);
            pStep->setWriteSignalDev(0x34);
            pStep->setAlarmDev(0x4c77);
            if (pEquipment->addStep(0x364, pStep) != 0) {
            pStep->setWriteSignalDev(0x54);
            pStep->setAlarmDev(0x6e68);
            if (pEquipment->addStep(STEP_ID_EQALARM3, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqAlarmStep* pStep = new CEqAlarmStep();
            pStep->setName(STEP_ALARM_BLOCK4);
            pStep->setWriteSignalDev(0x35);
            pStep->setAlarmDev(0x4ca4);
            if (pEquipment->addStep(0x365, pStep) != 0) {
            pStep->setWriteSignalDev(0x55);
            pStep->setAlarmDev(0x6e95);
            if (pEquipment->addStep(STEP_ID_EQALARM4, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqAlarmStep* pStep = new CEqAlarmStep();
            pStep->setName(STEP_ALARM_BLOCK5);
            pStep->setWriteSignalDev(0x36);
            pStep->setAlarmDev(0x4cd1);
            if (pEquipment->addStep(0x366, pStep) != 0) {
            pStep->setWriteSignalDev(0x56);
            pStep->setAlarmDev(0x6ec2);
            if (pEquipment->addStep(STEP_ID_EQALARM5, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqProcessStep* pStep = new CEqProcessStep();
            pStep->setName(STEP_PROCESS);
            pStep->setWriteSignalDev(0x37);
            pStep->setProcessDev(0x5864);
            if (pEquipment->addStep(0x367, pStep) != 0) {
            pStep->setWriteSignalDev(0x57);
            pStep->setProcessDev(0x7a55);
            if (pEquipment->addStep(STEP_ID_PROCESS_DATA_REPORT, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqCimModeChangeStep* pStep = new CEqCimModeChangeStep();
            pStep->setName(STEP_CIM_MODE_CHANGE);
            pStep->setWriteSignalDev(0x50);
            pStep->setWriteSignalDev(0x70);
            pStep->setCimModeDev(0x15);
            if (pEquipment->addStep(0x350, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_CIMMODE_CHANGED_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqCimMessageCmdStep* pStep = new CEqCimMessageCmdStep();
            pStep->setName(STEP_CIM_MESSAGE_CMD);
            pStep->setWriteSignalDev(0x51);
            pStep->setWriteSignalDev(0x71);
            pStep->setCimMessageDev(0x0);
            if (pEquipment->addStep(0x351, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_CIM_MSG_SET_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
        {
            // CIM Message Confirm
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, 0x6c80);
            pStep->setName(STEP_EQ_CIM_MESSAGE_CONFIRM);
            pStep->setWriteSignalDev(0x59);
            if (pEquipment->addStep(STEP_ID_CIM_MSG_CONFIRM_REPORT, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqCimMessageClearStep* pStep = new CEqCimMessageClearStep();
            pStep->setName(STEP_CIM_MESSAGE_CLEAR);
            pStep->setWriteSignalDev(0x52);
            pStep->setWriteSignalDev(0x72);
            pStep->setClearCimMessageDev(0x13);
            if (pEquipment->addStep(0x352, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_CIM_MSG_CLEAR_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqDateTimeSetCmdStep* pStep = new CEqDateTimeSetCmdStep();
            pStep->setName(STEP_DATETIME_SET_CMD);
            pStep->setWriteSignalDev(0x53);
            pStep->setWriteSignalDev(0x73);
            pStep->setDateTimeDev(0x16);
            if (pEquipment->addStep(0x353, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_DATETIME_SET_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqVCREnableStep* pStep = new CEqVCREnableStep();
            pStep->setName(STEP_EQ_VCR_ENABLE);
            pStep->setWriteSignalDev(0x54);
            pStep->setWriteSignalDev(0x74);
            pStep->setEqVCRModeDev(0x1F);
            if (pEquipment->addStep(0x354, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_VCR_ENABLE_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqModeChangeStep* pStep = new CEqModeChangeStep();
            pStep->setName(STEP_EQ_MODE_CHANGE);
            pStep->setWriteSignalDev(0x55);
            pStep->setWriteSignalDev(0x75);
            pStep->setEqModeDev(0x1E);
            if (pEquipment->addStep(0x355, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_EQMODE_CHANGE_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
        // Port1
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d1f);
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f10);
            pStep->setName(STEP_EQ_PORT1_TYPE);
            pStep->setWriteSignalDev(0x80);
            if (pEquipment->addStep(0x3e0, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d20);
            pStep->setName(STEP_EQ_PORT1_MODE);
            pStep->setWriteSignalDev(0x88);
            if (pEquipment->addStep(0x3e8, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, 0x4d21);
            pStep->setName(STEP_EQ_PORT1_CASSETTE_TYPE);
            pStep->setWriteSignalDev(0x90);
            if (pEquipment->addStep(0x3f0, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d23);
            pStep->setName(STEP_EQ_PORT1_TRANSFER_MODE);
            pStep->setWriteSignalDev(0x98);
            if (pEquipment->addStep(0x3f8, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d24);
            pStep->setName(STEP_EQ_PORT1_ENABLE);
            pStep->setWriteSignalDev(0xa0);
            if (pEquipment->addStep(0x400, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_PORT1_TYPE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d25);
            pStep->setName(STEP_EQ_PORT1_TYPE_ATUO);
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f11);
            pStep->setName(STEP_EQ_PORT1_MODE);
            pStep->setWriteSignalDev(0xa8);
            if (pEquipment->addStep(0x408, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_PORT1_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, 0x6f12);
            pStep->setName(STEP_EQ_PORT1_CASSETTE_TYPE);
            pStep->setWriteSignalDev(0xb0);
            if (pEquipment->addStep(STEP_ID_PORT1_CASSETTE_TYPE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f14);
            pStep->setName(STEP_EQ_PORT1_TRANSFER_MODE);
            pStep->setWriteSignalDev(0xb8);
            if (pEquipment->addStep(STEP_ID_PORT1_TRANSFER_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f15);
            pStep->setName(STEP_EQ_PORT1_ENABLE);
            pStep->setWriteSignalDev(0xc0);
            if (pEquipment->addStep(STEP_ID_PORT1_ENABLE_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f16);
            pStep->setName(STEP_EQ_PORT1_TYPE_ATUO);
            pStep->setWriteSignalDev(0xc8);
            if (pEquipment->addStep(STEP_ID_PORT1_TYPE_AUTO_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        // Port2
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d2f);
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f20);
            pStep->setName(STEP_EQ_PORT2_TYPE);
            pStep->setWriteSignalDev(0x81);
            if (pEquipment->addStep(0x3e1, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d30);
            pStep->setName(STEP_EQ_PORT2_MODE);
            pStep->setWriteSignalDev(0x89);
            if (pEquipment->addStep(0x3e9, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, 0x4d31);
            pStep->setName(STEP_EQ_PORT2_CASSETTE_TYPE);
            pStep->setWriteSignalDev(0x91);
            if (pEquipment->addStep(0x3f1, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d33);
            pStep->setName(STEP_EQ_PORT2_TRANSFER_MODE);
            pStep->setWriteSignalDev(0x99);
            if (pEquipment->addStep(0x3f9, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d34);
            pStep->setName(STEP_EQ_PORT2_ENABLE);
            pStep->setWriteSignalDev(0xa1);
            if (pEquipment->addStep(0x401, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_PORT2_TYPE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d35);
            pStep->setName(STEP_EQ_PORT2_TYPE_ATUO);
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f21);
            pStep->setName(STEP_EQ_PORT2_MODE);
            pStep->setWriteSignalDev(0xa9);
            if (pEquipment->addStep(0x409, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_PORT2_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, 0x6f22);
            pStep->setName(STEP_EQ_PORT2_CASSETTE_TYPE);
            pStep->setWriteSignalDev(0xb1);
            if (pEquipment->addStep(STEP_ID_PORT2_CASSETTE_TYPE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f24);
            pStep->setName(STEP_EQ_PORT2_TRANSFER_MODE);
            pStep->setWriteSignalDev(0xb9);
            if (pEquipment->addStep(STEP_ID_PORT2_TRANSFER_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f25);
            pStep->setName(STEP_EQ_PORT2_ENABLE);
            pStep->setWriteSignalDev(0xc1);
            if (pEquipment->addStep(STEP_ID_PORT2_ENABLE_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f26);
            pStep->setName(STEP_EQ_PORT2_TYPE_ATUO);
            pStep->setWriteSignalDev(0xc9);
            if (pEquipment->addStep(STEP_ID_PORT2_TYPE_AUTO_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        // Port3
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d3f);
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f30);
            pStep->setName(STEP_EQ_PORT3_TYPE);
            pStep->setWriteSignalDev(0x82);
            if (pEquipment->addStep(0x3e2, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d40);
            pStep->setName(STEP_EQ_PORT3_MODE);
            pStep->setWriteSignalDev(0x8a);
            if (pEquipment->addStep(0x3ea, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, 0x4d41);
            pStep->setName(STEP_EQ_PORT3_CASSETTE_TYPE);
            pStep->setWriteSignalDev(0x92);
            if (pEquipment->addStep(0x3f2, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d43);
            pStep->setName(STEP_EQ_PORT3_TRANSFER_MODE);
            pStep->setWriteSignalDev(0x9a);
            if (pEquipment->addStep(0x3fa, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d44);
            pStep->setName(STEP_EQ_PORT3_ENABLE);
            pStep->setWriteSignalDev(0xa2);
            if (pEquipment->addStep(0x402, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_PORT3_TYPE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d45);
            pStep->setName(STEP_EQ_PORT3_TYPE_ATUO);
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f31);
            pStep->setName(STEP_EQ_PORT3_MODE);
            pStep->setWriteSignalDev(0xaa);
            if (pEquipment->addStep(0x40a, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_PORT3_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, 0x6f32);
            pStep->setName(STEP_EQ_PORT3_CASSETTE_TYPE);
            pStep->setWriteSignalDev(0xb2);
            if (pEquipment->addStep(STEP_ID_PORT3_CASSETTE_TYPE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f34);
            pStep->setName(STEP_EQ_PORT3_TRANSFER_MODE);
            pStep->setWriteSignalDev(0xba);
            if (pEquipment->addStep(STEP_ID_PORT3_TRANSFER_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f35);
            pStep->setName(STEP_EQ_PORT3_ENABLE);
            pStep->setWriteSignalDev(0xc2);
            if (pEquipment->addStep(STEP_ID_PORT3_ENABLE_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f36);
            pStep->setName(STEP_EQ_PORT3_TYPE_ATUO);
            pStep->setWriteSignalDev(0xca);
            if (pEquipment->addStep(STEP_ID_PORT3_TYPE_AUTO_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        // Port4
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d4f);
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f40);
            pStep->setName(STEP_EQ_PORT4_TYPE);
            pStep->setWriteSignalDev(0x83);
            if (pEquipment->addStep(0x3e3, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d50);
            pStep->setName(STEP_EQ_PORT4_MODE);
            pStep->setWriteSignalDev(0x8b);
            if (pEquipment->addStep(0x3eb, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, 0x4d51);
            pStep->setName(STEP_EQ_PORT4_CASSETTE_TYPE);
            pStep->setWriteSignalDev(0x93);
            if (pEquipment->addStep(0x3f3, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d53);
            pStep->setName(STEP_EQ_PORT4_TRANSFER_MODE);
            pStep->setWriteSignalDev(0x9b);
            if (pEquipment->addStep(0x3fb, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d54);
            pStep->setName(STEP_EQ_PORT4_ENABLE);
            pStep->setWriteSignalDev(0xa3);
            if (pEquipment->addStep(0x403, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_PORT4_TYPE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x4d55);
            pStep->setName(STEP_EQ_PORT4_TYPE_ATUO);
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f41);
            pStep->setName(STEP_EQ_PORT4_MODE);
            pStep->setWriteSignalDev(0xab);
            if (pEquipment->addStep(0x40b, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_PORT4_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, 0x6f42);
            pStep->setName(STEP_EQ_PORT4_CASSETTE_TYPE);
            pStep->setWriteSignalDev(0xb3);
            if (pEquipment->addStep(STEP_ID_PORT4_CASSETTE_TYPE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f44);
            pStep->setName(STEP_EQ_PORT4_TRANSFER_MODE);
            pStep->setWriteSignalDev(0xbb);
            if (pEquipment->addStep(STEP_ID_PORT4_TRANSFER_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f45);
            pStep->setName(STEP_EQ_PORT4_ENABLE);
            pStep->setWriteSignalDev(0xc3);
            if (pEquipment->addStep(STEP_ID_PORT4_ENABLE_MODE_CHANGE, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT16, 0x6f46);
            pStep->setName(STEP_EQ_PORT4_TYPE_ATUO);
            pStep->setWriteSignalDev(STEP_ID_PORT4_TYPE_AUTO_CHANGE);
            if (pEquipment->addStep(0xcb, pStep) != 0) {
                delete pStep;
            }
        }
        // CEqCassetteTranserStateStep
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_EMPTY, 0xb8,
            STEP_ID_PORT1_CASSETTIE_EMPTY, 0x4d5f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_LOAD_EADY, 0xc0,
            STEP_ID_PORT1_CASSETTIE_LOAD_READY, 0x4d5f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_LOADED, 0xc8,
            STEP_ID_PORT1_CASSETTIE_LOADED, 0x4d5f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_INUSE, 0xd0,
            STEP_ID_PORT1_CASSETTIE_INUSE, 0x4d5f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_UNLOAD_EADY, 0xd8,
            STEP_ID_PORT1_CASSETTIE_UNLOAD_READY, 0x4d5f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_BLOCKED, 0xe0,
            STEP_ID_PORT1_CASSETTIE_BLOCKED, 0x4d5f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_EMPTY,
            STEP_ID_PORT2_CASSETTIE_EMPTY, 0x418, 0x4d7f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_LOAD_EADY,
            STEP_ID_PORT2_CASSETTIE_LOAD_READY, 0x420, 0x4d7f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_LOADED,
            STEP_ID_PORT2_CASSETTIE_LOADED, 0x428, 0x4d7f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_INUSE,
            STEP_ID_PORT2_CASSETTIE_INUSE, 0x430, 0x4d7f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_UNLOAD_EADY,
            STEP_ID_PORT2_CASSETTIE_UNLOAD_READY, 0x438, 0x4d7f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_BLOCKED,
            STEP_ID_PORT2_CASSETTIE_BLOCKED, 0x440, 0x4d7f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_EMPTY,
            STEP_ID_PORT3_CASSETTIE_EMPTY, 0x418, 0x4d9f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_LOAD_EADY,
            STEP_ID_PORT3_CASSETTIE_LOAD_READY, 0x420, 0x4d9f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_LOADED,
            STEP_ID_PORT3_CASSETTIE_INUSE, 0x428, 0x4d9f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_INUSE,
            STEP_ID_PORT3_CASSETTIE_INUSE, 0x430, 0x4d9f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_UNLOAD_EADY,
            STEP_ID_PORT3_CASSETTIE_UNLOAD_READY, 0x438, 0x4d9f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_BLOCKED,
            STEP_ID_PORT3_CASSETTIE_BLOCKED, 0x440, 0x4d9f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_EMPTY,
            STEP_ID_PORT4_CASSETTIE_EMPTY, 0x418, 0x4dbf);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_LOAD_EADY,
            STEP_ID_PORT4_CASSETTIE_LOAD_READY, 0x420, 0x4dbf);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_LOADED,
            STEP_ID_PORT4_CASSETTIE_LOADED, 0x428, 0x4dbf);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_INUSE,
            STEP_ID_PORT4_CASSETTIE_INUSE, 0x430, 0x4dbf);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_UNLOAD_EADY,
            STEP_ID_PORT4_CASSETTIE_UNLOAD_READY, 0x438, 0x4dbf);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_BLOCKED,
            STEP_ID_PORT4_CASSETTIE_BLOCKED, 0x440, 0x4dbf);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_EMPTY, 0xd8,
            STEP_ID_PORT1_CASSETTIE_EMPTY, 0x6f50);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_LOAD_EADY, 0xe0,
            STEP_ID_PORT1_CASSETTIE_LOAD_READY, 0x6f50);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_LOADED, 0xe8,
            STEP_ID_PORT1_CASSETTIE_LOADED, 0x6f50);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_INUSE, 0xf0,
            STEP_ID_PORT1_CASSETTIE_INUSE, 0x6f50);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_UNLOAD_EADY, 0xf8,
            STEP_ID_PORT1_CASSETTIE_UNLOAD_READY, 0x6f50);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P1_CASSETTE_BLOCKED, 0x100,
            STEP_ID_PORT1_CASSETTIE_BLOCKED, 0x6f50);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_EMPTY, 0xd9,
            STEP_ID_PORT2_CASSETTIE_EMPTY, 0x6f70);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_LOAD_EADY, 0xe1,
            STEP_ID_PORT2_CASSETTIE_LOAD_READY, 0x6f70, 0x4d7f);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_LOADED, 0xe9,
            STEP_ID_PORT2_CASSETTIE_LOADED, 0x6f70);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_INUSE, 0xf1,
            STEP_ID_PORT2_CASSETTIE_INUSE, 0x6f70);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_UNLOAD_EADY, 0xf9,
            STEP_ID_PORT2_CASSETTIE_UNLOAD_READY, 0x6f70);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P2_CASSETTE_BLOCKED, 0x101,
            STEP_ID_PORT2_CASSETTIE_BLOCKED, 0x6f70);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_EMPTY, 0xda,
            STEP_ID_PORT3_CASSETTIE_EMPTY, 0x6f90);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_LOAD_EADY, 0xe2,
            STEP_ID_PORT3_CASSETTIE_LOAD_READY, 0x6f90);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_LOADED, 0xea,
            STEP_ID_PORT3_CASSETTIE_INUSE, 0x6f90);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_INUSE, 0xf2,
            STEP_ID_PORT3_CASSETTIE_INUSE, 0x6f90);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_UNLOAD_EADY, 0xfa,
            STEP_ID_PORT3_CASSETTIE_UNLOAD_READY, 0x6f90);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P3_CASSETTE_BLOCKED, 0x102,
            STEP_ID_PORT3_CASSETTIE_BLOCKED, 0x6f90);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_EMPTY, 0xdb,
            STEP_ID_PORT4_CASSETTIE_EMPTY, 0x6fb0);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_LOAD_EADY, 0xe3,
            STEP_ID_PORT4_CASSETTIE_LOAD_READY, 0x6fb0);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_LOADED, 0xeb,
            STEP_ID_PORT4_CASSETTIE_LOADED, 0x6fb0);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_INUSE, 0xf3,
            STEP_ID_PORT4_CASSETTIE_INUSE, 0x6fb0);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_UNLOAD_EADY, 0xfb,
            STEP_ID_PORT4_CASSETTIE_UNLOAD_READY, 0x6fb0);
        ADD_EQ_CASSETTE_TRANSFER_STATE_STEP(STEP_EQ_P4_CASSETTE_BLOCKED, 0x103,
            STEP_ID_PORT4_CASSETTIE_BLOCKED, 0x6fb0);
        pEquipment->init();
        LOGE("已添加“EFEM(ROBOT)”.");
@@ -728,8 +737,8 @@
        pEquipment->setName(index == 0 ? "Bonder 1" : "Bonder 2");
        pEquipment->setDescription(index == 0 ? "Bonder 1." : "Bonder 2.");
        pEquipment->setStation(0, 255);
        pEquipment->setReadBitBlock(index == 0 ? 0x4600 : 0x4c00,
            index == 0 ? 0x4c00 : 0x5200);
        pEquipment->setReadBitBlock(index == 0 ? 0x4b00 : 0x5600,
            index == 0 ? 0x5600 : 0x6100);
        addToEquipmentList(pEquipment);
@@ -737,126 +746,126 @@
        {
            CEqModeStep* pStep = new CEqModeStep();
            pStep->setName(STEP_MODE);
            pStep->setWriteSignalDev(index == 0 ? 0x330 : 0x630);
            pStep->setModeDev(index == 0 ? 0x6a8c : 0x8a8c);
            if (pEquipment->addStep(0x360, pStep) != 0) {
            pStep->setWriteSignalDev(index == 0 ? 0x350 : 0x650);
            pStep->setModeDev(index == 0 ? 0xad7d : 0xee7d);
            if (pEquipment->addStep(STEP_ID_EQMODE_CHANGED, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqStatusStep* pStep = new CEqStatusStep();
            pStep->setName(STEP_STATUS);
            pStep->setWriteSignalDev(index == 0 ? 0x331 : 0x631);
            pStep->setStatusDev(index == 0 ? 0x6a68 : 0x8a68);
            if (pEquipment->addStep(0x361, pStep) != 0) {
            pStep->setWriteSignalDev(index == 0 ? 0x351 : 0x651);
            pStep->setStatusDev(index == 0 ? 0xad59 : 0xee59);
            if (pEquipment->addStep(STEP_ID_EQSTATUS_CHANGED, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqAlarmStep* pStep = new CEqAlarmStep();
            pStep->setName(STEP_ALARM_BLOCK1);
            pStep->setWriteSignalDev(index == 0 ? 0x332 : 0x632);
            pStep->setAlarmDev(index == 0 ? 0x6c1d : 0x8c1d);
            if (pEquipment->addStep(0x362, pStep) != 0) {
            pStep->setWriteSignalDev(index == 0 ? 0x352 : 0x652);
            pStep->setAlarmDev(index == 0 ? 0xaf0e : 0xf00e);
            if (pEquipment->addStep(STEP_ID_EQALARM1, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqAlarmStep* pStep = new CEqAlarmStep();
            pStep->setName(STEP_ALARM_BLOCK2);
            pStep->setWriteSignalDev(index == 0 ? 0x333 : 0x633);
            pStep->setAlarmDev(index == 0 ? 0x6c4a : 0x8c4a);
            if (pEquipment->addStep(0x363, pStep) != 0) {
            pStep->setWriteSignalDev(index == 0 ? 0x353 : 0x653);
            pStep->setAlarmDev(index == 0 ? 0xaf3b : 0xf03b);
            if (pEquipment->addStep(STEP_ID_EQALARM2, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqAlarmStep* pStep = new CEqAlarmStep();
            pStep->setName(STEP_ALARM_BLOCK3);
            pStep->setWriteSignalDev(index == 0 ? 0x334 : 0x634);
            pStep->setAlarmDev(index == 0 ? 0x6c77 : 0x8c77);
            if (pEquipment->addStep(0x364, pStep) != 0) {
            pStep->setWriteSignalDev(index == 0 ? 0x354 : 0x654);
            pStep->setAlarmDev(index == 0 ? 0xaf8e : 0xf068);
            if (pEquipment->addStep(STEP_ID_EQALARM3, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqAlarmStep* pStep = new CEqAlarmStep();
            pStep->setName(STEP_ALARM_BLOCK4);
            pStep->setWriteSignalDev(index == 0 ? 0x335 : 0x635);
            pStep->setAlarmDev(index == 0 ? 0x6ca4 : 0x8ca4);
            if (pEquipment->addStep(0x365, pStep) != 0) {
            pStep->setWriteSignalDev(index == 0 ? 0x355 : 0x655);
            pStep->setAlarmDev(index == 0 ? 0xaf95 : 0xf095);
            if (pEquipment->addStep(STEP_ID_EQALARM4, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqAlarmStep* pStep = new CEqAlarmStep();
            pStep->setName(STEP_ALARM_BLOCK5);
            pStep->setWriteSignalDev(index == 0 ? 0x336 : 0x636);
            pStep->setAlarmDev(index == 0 ? 0x6cd1 : 0x8cd1);
            if (pEquipment->addStep(0x366, pStep) != 0) {
            pStep->setWriteSignalDev(index == 0 ? 0x356 : 0x656);
            pStep->setAlarmDev(index == 0 ? 0xafc2 : 0xf0c2);
            if (pEquipment->addStep(STEP_ID_EQALARM5, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqProcessStep* pStep = new CEqProcessStep();
            pStep->setName(STEP_PROCESS);
            pStep->setWriteSignalDev(index == 0 ? 0x337 : 0x637);
            pStep->setProcessDev(index == 0 ? 0x7864 : 0x9864);
            if (pEquipment->addStep(0x367, pStep) != 0) {
            pStep->setWriteSignalDev(index == 0 ? 0x357 : 0x657);
            pStep->setProcessDev(index == 0 ? 0xbb55 : 0xfc55);
            if (pEquipment->addStep(STEP_ID_PROCESS_DATA_REPORT, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqCimModeChangeStep* pStep = new CEqCimModeChangeStep();
            pStep->setName(STEP_CIM_MODE_CHANGE);
            pStep->setWriteSignalDev(index == 0 ? 0x350 : 0x650);
            pStep->setWriteSignalDev(index == 0 ? 0x370 : 0x670);
            pStep->setCimModeDev(index == 0 ? 0x965 : 0x12b5);
            if (pEquipment->addStep(0x350, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_CIMMODE_CHANGED_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqCimMessageCmdStep* pStep = new CEqCimMessageCmdStep();
            pStep->setName(STEP_CIM_MESSAGE_CMD);
            pStep->setWriteSignalDev(index == 0 ? 0x351 : 0x651);
            pStep->setWriteSignalDev(index == 0 ? 0x371 : 0x671);
            pStep->setCimMessageDev(index == 0 ? 0x950 : 0x12a0);
            if (pEquipment->addStep(0x351, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_CIM_MSG_SET_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
        {
            // CIM Message Confirm
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, index == 0 ? 0x6a8f : 0x8a8f);
            CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, index == 0 ? 0xad80 : 0xee80);
            pStep->setName(STEP_EQ_CIM_MESSAGE_CONFIRM);
            pStep->setWriteSignalDev(index == 0 ? 0x339 : 0x639);
            if (pEquipment->addStep(0x369, pStep) != 0) {
            pStep->setWriteSignalDev(index == 0 ? 0x359 : 0x659);
            if (pEquipment->addStep(STEP_ID_CIM_MSG_CONFIRM_REPORT, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqCimMessageClearStep* pStep = new CEqCimMessageClearStep();
            pStep->setName(STEP_CIM_MESSAGE_CLEAR);
            pStep->setWriteSignalDev(index == 0 ? 0x352 : 0x652);
            pStep->setWriteSignalDev(index == 0 ? 0x372 : 0x672);
            pStep->setClearCimMessageDev(index == 0 ? 0x963 : 0x12b3);
            if (pEquipment->addStep(0x352, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_CIM_MSG_CLEAR_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqDateTimeSetCmdStep* pStep = new CEqDateTimeSetCmdStep();
            pStep->setName(STEP_DATETIME_SET_CMD);
            pStep->setWriteSignalDev(index == 0 ? 0x353 : 0x653);
            pStep->setWriteSignalDev(index == 0 ? 0x373 : 0x673);
            pStep->setDateTimeDev(index == 0 ? 0x966 : 0x12b6);
            if (pEquipment->addStep(0x353, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_DATETIME_SET_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqModeChangeStep* pStep = new CEqModeChangeStep();
            pStep->setName(STEP_EQ_MODE_CHANGE);
            pStep->setWriteSignalDev(index == 0 ? 0x355 : 0x655);
            pStep->setWriteSignalDev(index == 0 ? 0x375 : 0x675);
            pStep->setEqModeDev(index == 0 ? 0x96E : 0x12be);
            if (pEquipment->addStep(0x355, pStep) != 0) {
            if (pEquipment->addStep(STEP_ID_EQMODE_CHANGE_CMD_REPLY, pStep) != 0) {
                delete pStep;
            }
        }
@@ -864,8 +873,8 @@
            CEqJobEventStep* pStep = new CEqJobEventStep();
            pStep->setName(STEP_EQ_RECEIVED_JOB_UPS1);
            pStep->setWriteSignalDev(index == 0 ? 0x300 : 0x600);
            pStep->setJobDataDev(index == 0 ? 0x6388 : 0x8388);
            if (pEquipment->addStep(0x380, pStep) != 0) {
            pStep->setJobDataDev(index == 0 ? 0x9510 : 0xd610);
            if (pEquipment->addStep(STEP_ID_RECIVE_JOB_UPS1, pStep) != 0) {
                delete pStep;
            }
        }
@@ -873,26 +882,26 @@
            CEqJobEventStep* pStep = new CEqJobEventStep();
            pStep->setName(STEP_EQ_RECEIVED_JOB_UPS2);
            pStep->setWriteSignalDev(index == 0 ? 0x301 : 0x601);
            pStep->setJobDataDev(index == 0 ? 0x64c8 : 0x84c8);
            if (pEquipment->addStep(0x381, pStep) != 0) {
            pStep->setJobDataDev(index == 0 ? 0x9650 : 0xd750);
            if (pEquipment->addStep(STEP_ID_RECIVE_JOB_UPS2, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqJobEventStep* pStep = new CEqJobEventStep();
            pStep->setName(STEP_EQ_SENT_OUT_JOB_UPS1);
            pStep->setWriteSignalDev(index == 0 ? 0x306 : 0x606);
            pStep->setJobDataDev(index == 0 ? 0x6000 : 0x8000);
            if (pEquipment->addStep(0x386, pStep) != 0) {
            pStep->setName(STEP_EQ_SENT_OUT_JOB_DOWNS1);
            pStep->setWriteSignalDev(index == 0 ? 0x310 : 0x610);
            pStep->setJobDataDev(index == 0 ? 0x8100 : 0xc200);
            if (pEquipment->addStep(STEP_ID_SENT_OUT_JOB_DOWNS1, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqJobEventStep* pStep = new CEqJobEventStep();
            pStep->setName(STEP_EQ_SENT_OUT_JOB_UPS2);
            pStep->setWriteSignalDev(index == 0 ? 0x307 : 0x607);
            pStep->setJobDataDev(index == 0 ? 0x6140 : 0x8140);
            if (pEquipment->addStep(0x387, pStep) != 0) {
            pStep->setName(STEP_EQ_SENT_OUT_JOB_DOWNS2);
            pStep->setWriteSignalDev(index == 0 ? 0x311 : 0x611);
            pStep->setJobDataDev(index == 0 ? 0x8240 : 0xc340);
            if (pEquipment->addStep(STEP_ID_SENT_OUT_JOB_DOWNS2, pStep) != 0) {
                delete pStep;
            }
        }
SourceCode/Bond/Servo/Common.h
@@ -135,35 +135,78 @@
#define STEP_EQ_CIM_MESSAGE_CONFIRM        _T("EQCimMessageConfirm")
#define STEP_EQ_RECEIVED_JOB_UPS1        _T("EQJEReceivedJobUps1")
#define STEP_EQ_RECEIVED_JOB_UPS2        _T("EQJEReceivedJobUps2")
#define STEP_EQ_SENT_OUT_JOB_UPS1        _T("EQJESentOutJobUps1")
#define STEP_EQ_SENT_OUT_JOB_UPS2        _T("EQJESentOutJobUps2")
#define STEP_EQ_SENT_OUT_JOB_DOWNS1        _T("EQJESentOutJobDowns1")
#define STEP_EQ_SENT_OUT_JOB_DOWNS2        _T("EQJESentOutJobDowns2")
/* Step ID */
#define STEP_ID_PORT1_CASSETTIE_EMPTY            0x418
#define STEP_ID_PORT1_CASSETTIE_LOAD_READY        0x420
#define STEP_ID_PORT1_CASSETTIE_LOADED            0x428
#define STEP_ID_PORT1_CASSETTIE_INUSE            0x430
#define STEP_ID_PORT1_CASSETTIE_UNLOAD_READY    0x438
#define STEP_ID_PORT1_CASSETTIE_BLOCKED            0x440
#define STEP_ID_PORT2_CASSETTIE_EMPTY            0x419
#define STEP_ID_PORT2_CASSETTIE_LOAD_READY        0x421
#define STEP_ID_PORT2_CASSETTIE_LOADED            0x429
#define STEP_ID_PORT2_CASSETTIE_INUSE            0x431
#define STEP_ID_PORT2_CASSETTIE_UNLOAD_READY    0x439
#define STEP_ID_PORT2_CASSETTIE_BLOCKED            0x441
#define STEP_ID_PORT3_CASSETTIE_EMPTY            0x41a
#define STEP_ID_PORT3_CASSETTIE_LOAD_READY        0x422
#define STEP_ID_PORT3_CASSETTIE_LOADED            0x42a
#define STEP_ID_PORT3_CASSETTIE_INUSE            0x432
#define STEP_ID_PORT3_CASSETTIE_UNLOAD_READY    0x43a
#define STEP_ID_PORT3_CASSETTIE_BLOCKED            0x442
#define STEP_ID_PORT4_CASSETTIE_EMPTY            0x41b
#define STEP_ID_PORT4_CASSETTIE_LOAD_READY        0x423
#define STEP_ID_PORT4_CASSETTIE_LOADED            0x42b
#define STEP_ID_PORT4_CASSETTIE_INUSE            0x433
#define STEP_ID_PORT4_CASSETTIE_UNLOAD_READY    0x43b
#define STEP_ID_PORT4_CASSETTIE_BLOCKED            0x443
#define STEP_ID_CIMMODE_CHANGED_CMD_REPLY        0x850
#define STEP_ID_CIM_MSG_SET_CMD_REPLY            0x851
#define STEP_ID_CIM_MSG_CLEAR_CMD_REPLY            0x852
#define STEP_ID_DATETIME_SET_CMD_REPLY            0x853
#define STEP_ID_VCR_ENABLE_CMD_REPLY            0x854
#define STEP_ID_EQMODE_CHANGE_CMD_REPLY            0x855
#define STEP_ID_EQMODE_CHANGED                    0x860
#define STEP_ID_EQSTATUS_CHANGED                0x861
#define STEP_ID_EQALARM1                        0x862
#define STEP_ID_EQALARM2                        0x863
#define STEP_ID_EQALARM3                        0x864
#define STEP_ID_EQALARM4                        0x865
#define STEP_ID_EQALARM5                        0x866
#define STEP_ID_PROCESS_DATA_REPORT                0x867
#define STEP_ID_CIM_MSG_CONFIRM_REPORT            0x869
#define STEP_ID_RECIVE_JOB_UPS1                    0x880
#define STEP_ID_RECIVE_JOB_UPS2                    0x881
#define STEP_ID_SENT_OUT_JOB_DOWNS1                0x890
#define STEP_ID_SENT_OUT_JOB_DOWNS2                0x891
#define STEP_ID_PORT1_TYPE_CHANGE                0x900
#define STEP_ID_PORT2_TYPE_CHANGE                0x901
#define STEP_ID_PORT3_TYPE_CHANGE                0x902
#define STEP_ID_PORT4_TYPE_CHANGE                0x903
#define STEP_ID_PORT1_MODE_CHANGE                0x908
#define STEP_ID_PORT2_MODE_CHANGE                0x909
#define STEP_ID_PORT3_MODE_CHANGE                0x90A
#define STEP_ID_PORT4_MODE_CHANGE                0x90B
#define STEP_ID_PORT1_CASSETTE_TYPE_CHANGE        0x910
#define STEP_ID_PORT2_CASSETTE_TYPE_CHANGE        0x911
#define STEP_ID_PORT3_CASSETTE_TYPE_CHANGE        0x912
#define STEP_ID_PORT4_CASSETTE_TYPE_CHANGE        0x913
#define STEP_ID_PORT1_TRANSFER_MODE_CHANGE        0x918
#define STEP_ID_PORT2_TRANSFER_MODE_CHANGE        0x919
#define STEP_ID_PORT3_TRANSFER_MODE_CHANGE        0x91A
#define STEP_ID_PORT4_TRANSFER_MODE_CHANGE        0x91B
#define STEP_ID_PORT1_ENABLE_MODE_CHANGE        0x920
#define STEP_ID_PORT2_ENABLE_MODE_CHANGE        0x921
#define STEP_ID_PORT3_ENABLE_MODE_CHANGE        0x922
#define STEP_ID_PORT4_ENABLE_MODE_CHANGE        0x923
#define STEP_ID_PORT1_TYPE_AUTO_CHANGE            0x928
#define STEP_ID_PORT2_TYPE_AUTO_CHANGE            0x929
#define STEP_ID_PORT3_TYPE_AUTO_CHANGE            0x92A
#define STEP_ID_PORT4_TYPE_AUTO_CHANGE            0x92B
#define STEP_ID_PORT1_CASSETTIE_EMPTY            0x938
#define STEP_ID_PORT1_CASSETTIE_LOAD_READY        0x940
#define STEP_ID_PORT1_CASSETTIE_LOADED            0x948
#define STEP_ID_PORT1_CASSETTIE_INUSE            0x950
#define STEP_ID_PORT1_CASSETTIE_UNLOAD_READY    0x958
#define STEP_ID_PORT1_CASSETTIE_BLOCKED            0x960
#define STEP_ID_PORT2_CASSETTIE_EMPTY            0x939
#define STEP_ID_PORT2_CASSETTIE_LOAD_READY        0x941
#define STEP_ID_PORT2_CASSETTIE_LOADED            0x949
#define STEP_ID_PORT2_CASSETTIE_INUSE            0x951
#define STEP_ID_PORT2_CASSETTIE_UNLOAD_READY    0x959
#define STEP_ID_PORT2_CASSETTIE_BLOCKED            0x961
#define STEP_ID_PORT3_CASSETTIE_EMPTY            0x93a
#define STEP_ID_PORT3_CASSETTIE_LOAD_READY        0x942
#define STEP_ID_PORT3_CASSETTIE_LOADED            0x94a
#define STEP_ID_PORT3_CASSETTIE_INUSE            0x952
#define STEP_ID_PORT3_CASSETTIE_UNLOAD_READY    0x95a
#define STEP_ID_PORT3_CASSETTIE_BLOCKED            0x962
#define STEP_ID_PORT4_CASSETTIE_EMPTY            0x93b
#define STEP_ID_PORT4_CASSETTIE_LOAD_READY        0x943
#define STEP_ID_PORT4_CASSETTIE_LOADED            0x94b
#define STEP_ID_PORT4_CASSETTIE_INUSE            0x953
#define STEP_ID_PORT4_CASSETTIE_UNLOAD_READY    0x95b
#define STEP_ID_PORT4_CASSETTIE_BLOCKED            0x963
/* base alarm */