From 331f447bb0e5eccf0b3161ab287c1372b14b8480 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 08 八月 2025 11:53:58 +0800
Subject: [PATCH] 1.增加千传计数,保存计数,重启软件时恢复; 2.千传测试模式,打印相关日志,方便后期提取,用于统计; 3.千传模式时烘烤两腔体都要进入; 4.千传模式时,Fliper到Bonder修改为用手臂2取料; 5.修复千传模式不计运行时的问题; 6.千传模式,最后收料强制放入第一层; 6.修复Buf, 当任务未生成(在符合条件后仍有1秒间隙)而机器单元发送FetchOutJob时,数据检验失败的问题,增加Sleep, 缩小间隙;

---
 SourceCode/Bond/Servo/PageRecipe.cpp |   43 +++++++++++++++++++++++++++++--------------
 1 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/SourceCode/Bond/Servo/PageRecipe.cpp b/SourceCode/Bond/Servo/PageRecipe.cpp
index 2ca1f9f..a625647 100644
--- a/SourceCode/Bond/Servo/PageRecipe.cpp
+++ b/SourceCode/Bond/Servo/PageRecipe.cpp
@@ -88,16 +88,25 @@
 	// 閬嶅巻鏁版嵁骞舵彃鍏ュ埌CListCtrl涓�
 	for (int i = 0; i < static_cast<int>(vecRecipe.size()); ++i) {
 		const RecipeInfo& recipe = vecRecipe[i];
+		if (recipe.vecDeviceList.empty() || recipe.vecDeviceList.size() > 6){
+			continue;
+		}
 
 		m_listPPID.InsertItem(i, _T("")); // 绗�0鍒楃┖鐧�
 
 		CString strNo;
 		strNo.Format(_T("%d"), i + 1);
 		m_listPPID.SetItemText(i, 1, strNo);
-
 		m_listPPID.SetItemText(i, 2, CA2T(recipe.strPPID.c_str()));
-		m_listPPID.SetItemText(i, 3, CA2T(recipe.strDescription.c_str()));
-		m_listPPID.SetItemText(i, 4, CA2T(recipe.strCreateTime.c_str()));
+
+		for (int j = 0; j < recipe.vecDeviceList.size(); j++){
+			CString str;
+			str.Format(_T("%d"), recipe.vecDeviceList.at(j).nRecipeID);
+			m_listPPID.SetItemText(i, j + 3, str);
+		}
+
+		m_listPPID.SetItemText(i, 9, CA2T(recipe.strCreateTime.c_str()));
+		m_listPPID.SetItemText(i, 10, CA2T(recipe.strDescription.c_str()));
 	}
 
 	// 鑾峰彇鍒楁暟
@@ -162,12 +171,11 @@
 	// 璇诲嚭鍒楀
 	CString strIniFile, strItem;
 	strIniFile.Format(_T("%s\\configuration.ini"), (LPTSTR)(LPCTSTR)theApp.m_strAppDir);
-	int width[8] = { 0, 80, 180, 80, 80, 100, 80, 180 };
-	for (int i = 0; i < 8; i++) {
+	int width[12] = { 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 180 };
+	for (int i = 0; i < 12; i++) {
 		strItem.Format(_T("Col_%d_Width"), i);
 		width[i] = GetPrivateProfileInt("PageRecipeListCtrl", strItem, width[i], strIniFile);
 	}
-
 
 	// TODO:  鍦ㄦ娣诲姞棰濆鐨勫垵濮嬪寲
 	CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST_PPID);
@@ -181,10 +189,15 @@
 	pListCtrl->InsertColumn(0, _T(""), LVCFMT_RIGHT, 0); // 闅愯棌鍒�
 	pListCtrl->InsertColumn(1, _T("No."), LVCFMT_LEFT, width[1]);
 	pListCtrl->InsertColumn(2, _T("PPID/Recipe ID"), LVCFMT_LEFT, width[2]);
-	pListCtrl->InsertColumn(3, _T("鎻忚堪"), LVCFMT_LEFT, width[3]);
-	pListCtrl->InsertColumn(4, _T("鍒涘缓鏃堕棿"), LVCFMT_LEFT, width[4]);
-	pListCtrl->SetColumnWidth(4, LVSCW_AUTOSIZE_USEHEADER);
-
+	pListCtrl->InsertColumn(3, _T("鐪熺┖鐑樼儰"), LVCFMT_LEFT, width[6]);
+	pListCtrl->InsertColumn(4, _T("Bonder1"), LVCFMT_LEFT, width[4]);
+	pListCtrl->InsertColumn(5, _T("Bonder2"), LVCFMT_LEFT, width[5]);
+	pListCtrl->InsertColumn(6, _T("鍚庣儤鍐峰嵈"), LVCFMT_LEFT, width[7]);
+	pListCtrl->InsertColumn(7, _T("绮惧害妫�鏌�"), LVCFMT_LEFT, width[8]);
+	pListCtrl->InsertColumn(8, _T("EFEM"), LVCFMT_LEFT, width[3]);
+	pListCtrl->InsertColumn(9, _T("鍒涘缓鏃堕棿"), LVCFMT_LEFT, width[9]);
+	pListCtrl->InsertColumn(10, _T("鎻忚堪"), LVCFMT_LEFT, width[10]);
+	pListCtrl->SetColumnWidth(10, LVSCW_AUTOSIZE_USEHEADER);
 
 	// 鑾峰彇鎵�鏈夋暟鎹�
 	auto vecData = RecipeManager::getInstance().getAllRecipes();
@@ -427,10 +440,10 @@
 	else {
 		// enable port
 		CMsgDlg msgDlg("璇风瓑寰�", "姝e湪鑾峰彇閰嶆柟...");
-		pEq->masterRecipeListRequest(0, [&](int status) -> void {
-			if (status == SS_FAILED) {
+		pEq->masterRecipeListRequest(0, [&, pEq](int status) -> void {
+			if (status == SS_FAILED || status == SS_TIMEOUT) {
 				CString strMsg;
-				strMsg.Format(_T("鑾峰彇閰嶆柟澶辫触锛�"));
+				strMsg.Format(status == SS_FAILED ? _T("鑾峰彇閰嶆柟澶辫触锛�") : _T("鑾峰彇閰嶆柟瓒呮椂锛�"));
 				msgDlg.DelayClose(3000);
 				msgDlg.SetIcon(MSG_BOX_ERROR);
 				msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
@@ -447,8 +460,10 @@
 				msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
 				msgDlg.SetMarquee(FALSE, 0);
 				msgDlg.SetCompleteCode(0);
+				SERVO::CRecipeList* pRecipeList = pEq->getRecipeList(0);
+				FillRecipeListToListCtrl(pRecipeList);
 			}
-			});
+		});
 		msgDlg.DoModal();
 	}
 }

--
Gitblit v1.9.3