chenluhua1980
2026-01-23 08fc60deca0fa2a0658a676d9dd76e0e69436312
1.接上
已修改1个文件
45 ■■■■■ 文件已修改
SourceCode/Bond/Servo/CMaster.cpp 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CMaster.cpp
@@ -62,6 +62,7 @@
        m_ullStartTime = 0;
        m_ullRunTime = 0;
        m_state = MASTERSTATE::READY;
        m_curveMode = CurveMode::Production;
        m_pActiveRobotTask = nullptr;
        m_nLastError = ER_CODE_NOERROR;
        m_isCompareMapsBeforeProceeding = FALSE;
@@ -278,6 +279,36 @@
        LOGI("[BOOT][MASTER] init finished, total cost=%llu ms",
            (unsigned long long)(GetTickCount64() - boot_master_begin));
        return 0;
    }
    void CMaster::setCurveMode(CurveMode mode)
    {
        if (m_curveMode == mode) {
            return;
        }
        m_curveMode = mode;
        if (m_pCollector != nullptr) {
            const uint32_t mids[] = {
                MID_Bonder1, MID_Bonder2,
                MID_VacuumBakeA, MID_VacuumBakeB,
                MID_BakeCoolingA, MID_BakeCoolingB
            };
            for (uint32_t mid : mids) {
                if (mode == CurveMode::EmptyChamber) {
                    m_pCollector->buffersStart(mid); // 空腔模式:允许无批次直接采样
                }
                else {
                    m_pCollector->buffersStop(mid);
                    m_pCollector->buffersClear(mid);
                }
            }
        }
        LOGI("<Master>CurveMode=%s", mode == CurveMode::EmptyChamber ? "EmptyChamber" : "Production");
    }
    CurveMode CMaster::getCurveMode() const
    {
        return m_curveMode;
    }
    int CMaster::term()
@@ -1699,7 +1730,8 @@
                    m_state == MASTERSTATE::RUNNING_CONTINUOUS_TRANSFER ||
                    m_state == MASTERSTATE::RUNNING_BATCH ||
                    m_state == MASTERSTATE::STARTING);
            if (!allowSvLog) {
            const bool allowCurve = allowSvLog || (m_curveMode == CurveMode::EmptyChamber);
            if (!allowCurve) {
                return;
            }
            CSVData* pSVData = (CSVData*)pData;
@@ -3622,6 +3654,17 @@
                m_pCollector->buffersSetChannelName(MID_BakeCoolingA, i + 1, coolingTypes[i].c_str());
                m_pCollector->buffersSetChannelName(MID_BakeCoolingB, i + 1, coolingTypes[i].c_str());
            }
            if (m_curveMode == CurveMode::EmptyChamber) {
                const uint32_t mids[] = {
                    MID_Bonder1, MID_Bonder2,
                    MID_VacuumBakeA, MID_VacuumBakeB,
                    MID_BakeCoolingA, MID_BakeCoolingB
                };
                for (uint32_t mid : mids) {
                    m_pCollector->buffersStart(mid);
                }
            }
        }
    }