From 93782ae523667cd742c5a99e8df9a34dc503523b Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期二, 11 十一月 2025 09:12:36 +0800
Subject: [PATCH] 1.修复保存单条记录时未保存曲线数据的问题;
---
SourceCode/Bond/Servo/CMaster.cpp | 53 +++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 43 insertions(+), 10 deletions(-)
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 8df061b..eb4a392 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -1641,7 +1641,7 @@
{8, 8}, {9, 9}, {10, 10}, {11, 11}, {12, 12}, {13, 13}, {14, 14}, {15, 15}, {16, 16}
};
- CGlass* pGlass = ((CEquipment*)pEquipment)->getGlassFromSlot(1);
+ CGlass* pGlass = ((CEquipment*)pEquipment)->getGlassFromSlot(2);
auto& dataTypes = CServoUtilsTool::getEqDataTypes();
auto& bonderTypes = dataTypes[eqid];
for (const auto& mapping : bonderMapping) {
@@ -1664,7 +1664,8 @@
{10, 8}, {11, 9}, {12, 10}, {13, 11}, {14, 12}, {15, 13}, {16, 14}
};
- CGlass* pGlass = ((CEquipment*)pEquipment)->getGlassFromSlot(1);
+ CGlass* pGlass1 = ((CEquipment*)pEquipment)->getGlassFromSlot(1);
+ CGlass* pGlass2 = ((CEquipment*)pEquipment)->getGlassFromSlot(2);
auto& dataTypes = CServoUtilsTool::getEqDataTypes();
auto& vacuumbakeTypes = dataTypes[eqid];
LOGD("<Master>onSVDataReport 003 : %d", vacuumMapping.size());
@@ -1673,10 +1674,15 @@
int channel = mapping.second;
if (paramIndex < params.size() && channel - 1 < vacuumbakeTypes.size()) {
+ double value = params.at(paramIndex).getDoubleValue();
+ const std::string& dataType = vacuumbakeTypes[channel - 1];
if (m_pCollector != nullptr)
- m_pCollector->buffersPush(eqid, channel, ts, params.at(paramIndex).getDoubleValue());
- if (pGlass != nullptr)
- pGlass->addSVData(eqid, vacuumbakeTypes[channel - 1], ts, params.at(paramIndex).getDoubleValue());
+ m_pCollector->buffersPush(eqid, channel, ts, value);
+ // 鏍规嵁鑵斾綋鍓嶇紑鍐欏叆瀵瑰簲 Slot 鐨勭幓鐠�
+ if (pGlass1 != nullptr && !dataType.empty() && dataType[0] == 'A')
+ pGlass1->addSVData(eqid, dataType, ts, value);
+ if (pGlass2 != nullptr && !dataType.empty() && dataType[0] == 'B')
+ pGlass2->addSVData(eqid, dataType, ts, value);
}
}
}
@@ -1688,19 +1694,46 @@
{11, 7}, {12, 8}, {13, 9}, {14, 10}, {15, 11}, {16, 12}
};
- CGlass* pGlass = ((CEquipment*)pEquipment)->getGlassFromSlot(1);
+ CGlass* pGlass1 = ((CEquipment*)pEquipment)->getGlassFromSlot(1); // A Bake
+ CGlass* pGlass2 = ((CEquipment*)pEquipment)->getGlassFromSlot(2); // A Cool
+ CGlass* pGlass3 = ((CEquipment*)pEquipment)->getGlassFromSlot(3); // B Bake
+ CGlass* pGlass4 = ((CEquipment*)pEquipment)->getGlassFromSlot(4); // B Cool
auto& dataTypes = CServoUtilsTool::getEqDataTypes();
auto& coolingTypes = dataTypes[eqid];
LOGD("<Master>onSVDataReport 003B : %d", coolingMapping.size());
+ auto addToGlass = [&](CGlass* glass, const std::string& type, double val) {
+ if (glass != nullptr)
+ glass->addSVData(eqid, type, ts, val);
+ };
for (const auto& mapping : coolingMapping) {
int paramIndex = mapping.first;
int channel = mapping.second;
if (paramIndex < params.size() && channel - 1 < coolingTypes.size()) {
+ double value = params.at(paramIndex).getDoubleValue();
+ const std::string& dataType = coolingTypes[channel - 1];
if (m_pCollector != nullptr)
- m_pCollector->buffersPush(eqid, channel, ts, params.at(paramIndex).getDoubleValue());
- if (pGlass != nullptr)
- pGlass->addSVData(eqid, coolingTypes[channel - 1], ts, params.at(paramIndex).getDoubleValue());
+ m_pCollector->buffersPush(eqid, channel, ts, value);
+ if (!dataType.empty()) {
+ const bool isBake = dataType.find("鐑樼儰") != std::string::npos;
+ const bool isCooling = dataType.find("鍐峰嵈") != std::string::npos;
+ switch (dataType[0]) {
+ case 'A':
+ if (isBake)
+ addToGlass(pGlass1, dataType, value);
+ else if (isCooling)
+ addToGlass(pGlass2, dataType, value);
+ break;
+ case 'B':
+ if (isBake)
+ addToGlass(pGlass3, dataType, value);
+ else if (isCooling)
+ addToGlass(pGlass4, dataType, value);
+ break;
+ default:
+ break;
+ }
+ }
}
}
}
@@ -3162,7 +3195,7 @@
auto& coolingTypes = dataTypes[EQ_ID_BAKE_COOLING];
for (size_t i = 0; i < coolingTypes.size(); ++i) {
- m_pCollector->buffersSetChannelName(EQ_ID_VACUUMBAKE, i + 1, coolingTypes[i].c_str());
+ m_pCollector->buffersSetChannelName(EQ_ID_BAKE_COOLING, i + 1, coolingTypes[i].c_str());
}
}
}
--
Gitblit v1.9.3