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/CPanelProduction.h | 30 ++++++++++++++++++++++++++++--
1 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/SourceCode/Bond/Servo/CPanelProduction.h b/SourceCode/Bond/Servo/CPanelProduction.h
index 60713f3..a4bd705 100644
--- a/SourceCode/Bond/Servo/CPanelProduction.h
+++ b/SourceCode/Bond/Servo/CPanelProduction.h
@@ -1,5 +1,10 @@
-#pragma once
+锘�#pragma once
#include "BlButton.h"
+#include <afxmt.h>
+#include "AccordionWnd.h"
+#include "ProductionStats.h"
+#include "CPageProdOverview.h"
+#include "CPageCtrlState.h"
// CPanelProduction dialog
class CPanelProduction : public CDialogEx
@@ -18,11 +23,22 @@
int m_nPanelWidth;
CBlButton m_btnClose;
HWND m_hPlaceholder;
+ CAccordionWnd* m_pAccordionWnd;
+
+ // Production shift summaries (updated by background thread)
+ ProductionShiftSummary m_daySummary;
+ ProductionShiftSummary m_nightSummary;
+ BOOL m_bShiftSummaryValid;
+ CCriticalSection m_csShiftSummary;
+ CWinThread* m_pStatsThread;
+ CEvent m_evStopStats;
+ CPageProdOverview* m_pPageProdOverview;
+ CPageCtrlState* m_pPageCtrlState;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
-// 对话框数据
+// 瀵硅瘽妗嗘暟鎹�
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_PANEL_PRODUCTION };
#endif
@@ -35,4 +51,14 @@
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnVLineMoveX(NMHDR* nmhdr, LRESULT* result);
afx_msg void OnBnClickedButtonClose();
+
+ // Thread-safe snapshots for UI timer display
+ BOOL TryGetDayNightSummaries(ProductionShiftSummary& outDay, ProductionShiftSummary& outNight);
+
+private:
+ static UINT AFX_CDECL StatsThreadProc(LPVOID pParam);
+ void StartStatsThread();
+ void StopStatsThread();
+public:
+ afx_msg void OnTimer(UINT_PTR nIDEvent);
};
--
Gitblit v1.9.3