From 6b6297c6fc0aa5c059d35732c7ee22ebca93967f Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期三, 14 一月 2026 15:43:40 +0800
Subject: [PATCH] 1.修复以下问题: ProceedWithCarrier 直接发 CCC_PROCESS_START:CModel::onCarrierAction 在 CompareMapsBeforeProceeding 关闭时,收到 ProceedWithCarrier 就调用 master.proceedWithCarrier(仅发送 Cassette Process Start,不校验 PJ/CJ 是否存在、SlotMap 是否验通过)。若 Host 流程异常(未下 PJ/CJ)或本地尚未准备好,会把设备推进加工态但无作业可跑。
---
SourceCode/Bond/Servo/ProductionStats.h | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/SourceCode/Bond/Servo/ProductionStats.h b/SourceCode/Bond/Servo/ProductionStats.h
index 84c8cb5..c884228 100644
--- a/SourceCode/Bond/Servo/ProductionStats.h
+++ b/SourceCode/Bond/Servo/ProductionStats.h
@@ -27,6 +27,10 @@
long long pairsFail = 0;
long long pairsNoResult = 0;
double yield = 0.0; // pairsPass / (pairsPass + pairsFail), 0 if denom==0
+
+ // Average takt time derived from glass_log.t_start/t_end (per pair, seconds)
+ double avgTaktSeconds = 0.0;
+ long long taktSamplePairs = 0;
};
struct ProductionAlarmSummary {
@@ -54,5 +58,9 @@
static bool GetCurrentShiftWindow(CConfiguration& config, ProductionShiftWindow& outWindow);
static bool ComputeCurrentShiftSummary(CConfiguration& config, ProductionShiftSummary& outSummary);
static void LogCurrentShiftSummary(CConfiguration& config);
-};
+ // Computes "current shift" and its adjacent other shift, so UI can always show Day+Night numbers.
+ // - If current is Day: day=current day shift, night=previous night shift.
+ // - If current is Night: night=current night shift, day=previous day shift.
+ static bool ComputeDayNightSummaries(CConfiguration& config, ProductionShiftSummary& outDay, ProductionShiftSummary& outNight);
+};
--
Gitblit v1.9.3