From 08fc60deca0fa2a0658a676d9dd76e0e69436312 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期五, 23 一月 2026 22:08:22 +0800
Subject: [PATCH] 1.接上
---
SourceCode/Bond/Servo/CMaster.cpp | 45 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 44 insertions(+), 1 deletions(-)
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index df536fb..9adc527 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/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);
+ }
+ }
}
}
--
Gitblit v1.9.3