mrDarker
2025-06-26 adf46e4da2f53d171cc5a0e95340d751ebacf763
Merge branch 'clh' into liuyang
已修改7个文件
55 ■■■■ 文件已修改
SourceCode/Bond/Servo/CEFEM.cpp 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEFEM.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEquipment.cpp 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CMaster.cpp 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CRobotTask.cpp 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/Servo.vcxproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/ServoDlg.cpp 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEFEM.cpp
@@ -880,4 +880,12 @@
    {
        return 10000;
    }
    void CEFEM::printDebugRobotState()
    {
        LOGI("<CEFEM>Robot status:%d, ARM1:%s, ARM2:%s",
            m_robotData.status,
            m_robotData.armState[1] ? _T("ON") : _T("OFF"),
            m_robotData.armState[2] ? _T("ON") : _T("OFF"));
    }
}
SourceCode/Bond/Servo/CEFEM.h
@@ -59,6 +59,7 @@
        int robotSendTransferAndHome(int seq, int armNo, int fromPos, int toPos, int fromSlot, int toSlot, ONWRITED onWritedBlock = nullptr);
        int robotSendGetAndPut(int seq, int armNo, int getPos, int getSlot, int putPos, int putSlot, ONWRITED onWritedBlock = nullptr);
        int robotSendPutAndHome(int seq, int armNo, int putPos, int putSlot, ONWRITED onWritedBlock = nullptr);
        void printDebugRobotState();
    private:
        CLoadPort* m_pPort[4];
SourceCode/Bond/Servo/CEquipment.cpp
@@ -41,6 +41,7 @@
        m_nBaseAlarmId = 0;
        m_pArm = nullptr;
        m_processState = PROCESS_STATE::Ready;
        m_blockReadBit = { 0 };
        InitializeCriticalSection(&m_criticalSection);
    }
SourceCode/Bond/Servo/CMaster.cpp
@@ -779,11 +779,12 @@
            for (auto item : m_listEquipment) {
                const StationIdentifier& station = item->getStation();
                MemoryBlock& block = item->getReadBitBlock();
                int nRet = m_cclink.ReadData2(station, (DeviceType)block.type,
                    block.start, block.size, block.buffer);
                if (0 == nRet) {
                    item->onReceiveLBData(block.buffer, block.size);
                if (block.end > block.start) {
                    int nRet = m_cclink.ReadData2(station, (DeviceType)block.type,
                        block.start, block.size, block.buffer);
                    if (0 == nRet) {
                        item->onReceiveLBData(block.buffer, block.size);
                    }
                }
            }
        }
@@ -1028,7 +1029,7 @@
        pEquipment->setBaseAlarmId(BASE_ALARM_EFEM);
        pEquipment->setName("Fliper(G2)");
        pEquipment->setDescription("Fliper(G2).");
        pEquipment->setReadBitBlock(0x4000, 0x45ff);
        pEquipment->setReadBitBlock(0x0, 0x0);
        pEquipment->setStation(0, 255);
        addToEquipmentList(pEquipment);
@@ -1063,7 +1064,7 @@
        pEquipment->setBaseAlarmId(BASE_ALARM_EFEM);
        pEquipment->setName("Aligner");
        pEquipment->setDescription("Aligner.");
        pEquipment->setReadBitBlock(0x4000, 0x45ff);
        pEquipment->setReadBitBlock(0x0, 0x0);
        pEquipment->setStation(0, 255);
        addToEquipmentList(pEquipment);
@@ -1190,27 +1191,8 @@
        }
        // 按一定频率扫描LB数据
        static int i = 0;
        i++;
        /*
        if (i % (4 * 1) == 0) {
            for (auto item : m_listEquipment) {
                if (item->getID() == EQ_ID_Bonder1) {
                    const StationIdentifier& station = item->getStation();
                    MemoryBlock& block = item->getReadBitBlock();
                    int nRet = m_cclink.ReadData2(station, (DeviceType)block.type,
                        block.start, block.size, block.buffer);
                    if (0 == nRet) {
                        item->onReceiveLBData(block.buffer, block.size);
                    }
                }
            }
        }
        */
        // 自动保存缓存
        if (i % (4 * 2) == 0) {
SourceCode/Bond/Servo/CRobotTask.cpp
@@ -368,25 +368,25 @@
            break;
        case EQ_ID_Bonder1:
            if (1 <= srcSlot && srcSlot <= 2) {
                tarPos = 9 + srcSlot;
                tarPos = 9 + srcSlot - 1;
                tarSlot = 1;
            }
            break;
        case EQ_ID_Bonder2:
            if (1 <= srcSlot && srcSlot <= 2) {
                tarPos = 11 + srcSlot;
                tarPos = 11 + srcSlot - 1;
                tarSlot = 1;
            }
            break;
        case EQ_ID_VACUUMBAKE:
            if (1 <= srcSlot && srcSlot <= 2) {
                tarPos = 13 + srcSlot;
                tarPos = 13 + srcSlot - 1;
                tarSlot = 1;
            }
            break;
        case EQ_ID_BAKE_COOLING:
            if (1 <= srcSlot && srcSlot <= 4) {
                tarPos = 15 + srcSlot;
                tarPos = 15 + srcSlot - 1;
                tarSlot = 1;
            }
            break;
SourceCode/Bond/Servo/Servo.vcxproj
@@ -46,6 +46,7 @@
    <PlatformToolset>v142</PlatformToolset>
    <CharacterSet>MultiByte</CharacterSet>
    <UseOfMfc>Dynamic</UseOfMfc>
    <EnableASAN>true</EnableASAN>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
SourceCode/Bond/Servo/ServoDlg.cpp
@@ -899,11 +899,13 @@
    }
    else if (id == IDC_BUTTON_SETTINGS) {
        SERVO::CEquipment* pEq = theApp.m_model.m_master.getEquipment(EQ_ID_EFEM);
        ((SERVO::CEFEM*)pEq)->printDebugRobotState();
        pEq->printDebugString001();
        pEq = theApp.m_model.m_master.getEquipment(EQ_ID_Bonder1);
        pEq->printDebugString001();
        pEq = theApp.m_model.m_master.getEquipment(EQ_ID_Bonder2);
        pEq->printDebugString001();
    }
    else if (id == IDC_BUTTON_OPERATOR) {
        int menuId = (int)wParam;