chenluhua1980
2026-01-24 847a34f02bfe00475735fb5bfbefea2db28c8ad6
1.修复前烘-b, 后烘-b没有进入b分支导致数据没有推送到显示端的问题;
已修改1个文件
26 ■■■■■ 文件已修改
SourceCode/Bond/Servo/CMaster.cpp 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CMaster.cpp
@@ -1793,18 +1793,23 @@
                    int paramIndex = mapping.first;
                    int channel = mapping.second;
                    if (paramIndex < params.size() && channel - 1 < vacuumbakeTypes.size()) {
                    if (paramIndex < params.size()) {
                        auto& param = params.at(paramIndex);
                        double value = param.getDoubleValue();
                        const std::string& dataType = vacuumbakeTypes[channel - 1];
                        const std::string& paramName = param.getName();
                        const char slotTag = !paramName.empty() ? paramName[0] : '\0';
                        const int typeIndex = (slotTag == 'B') ? (channel - 8) : (channel - 1);
                        if (typeIndex < 0 || typeIndex >= (int)vacuumbakeTypes.size()) {
                            continue;
                        }
                        const int pushChannel = typeIndex + 1;
                        const std::string& dataType = vacuumbakeTypes[typeIndex];
                        if (m_pCollector != nullptr) {
                            if (slotTag == 'A')
                                m_pCollector->buffersPush(SlotToMid(eqid, 1), channel, ts, value);
                                m_pCollector->buffersPush(SlotToMid(eqid, 1), pushChannel, ts, value);
                            else if (slotTag == 'B')
                                m_pCollector->buffersPush(SlotToMid(eqid, 2), channel, ts, value);
                                m_pCollector->buffersPush(SlotToMid(eqid, 2), pushChannel, ts, value);
                        }
                        // 根据腔体前缀写入对应 Slot 的玻璃
@@ -1838,20 +1843,25 @@
                    int paramIndex = mapping.first;
                    int channel = mapping.second;
                    if (paramIndex < params.size() && channel - 1 < coolingTypes.size()) {
                    if (paramIndex < params.size()) {
                        auto& param = params.at(paramIndex);
                        double value = param.getDoubleValue();
                        const std::string& dataType = coolingTypes[channel - 1];
                        const std::string& paramName = param.getName();
                        const char slotTag = !paramName.empty() ? paramName[0] : '\0';
                        const bool paramIsBake = paramName.find("烘烤") != std::string::npos;
                        const bool paramIsCooling = paramName.find("冷却") != std::string::npos;
                        const int typeIndex = (slotTag == 'B') ? (channel - 7) : (channel - 1);
                        if (typeIndex < 0 || typeIndex >= (int)coolingTypes.size()) {
                            continue;
                        }
                        const int pushChannel = typeIndex + 1;
                        const std::string& dataType = coolingTypes[typeIndex];
                        if (m_pCollector != nullptr && paramIsBake) {
                            if (slotTag == 'A')
                                m_pCollector->buffersPush(SlotToMid(eqid, 1), channel, ts, value);
                                m_pCollector->buffersPush(SlotToMid(eqid, 1), pushChannel, ts, value);
                            else if (slotTag == 'B')
                                m_pCollector->buffersPush(SlotToMid(eqid, 3), channel, ts, value);
                                m_pCollector->buffersPush(SlotToMid(eqid, 3), pushChannel, ts, value);
                        }
                        if (!dataType.empty()) {