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/CRecipesManager.cpp |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/SourceCode/Bond/Servo/CRecipesManager.cpp b/SourceCode/Bond/Servo/CRecipesManager.cpp
index 591dfa7..354aaac 100644
--- a/SourceCode/Bond/Servo/CRecipesManager.cpp
+++ b/SourceCode/Bond/Servo/CRecipesManager.cpp
@@ -86,7 +86,18 @@
 		if (m_onSyncingStateChanged != nullptr) {
 			m_onSyncingStateChanged(m_nSyncStatus);
 		}
+	}
 
+	void CRecipesManager::syncTimeout()
+	{
+		lock();
+		m_nSyncStatus = SS_TIMEOUT;
+		m_nTimeoutCount = 0;
+		unlock();
+
+		if (m_onSyncingStateChanged != nullptr) {
+			m_onSyncingStateChanged(m_nSyncStatus);
+		}
 	}
 
 	short CRecipesManager::decodeRecipeListReport(const char* pszData, size_t size)
@@ -150,7 +161,7 @@
 
 		}
 		else if (reportType == RT_REQUEST_FROM_EAS) {
-			int nRet = pRecipeList->addRecipePacket(toatlGroupCount, currentGroupCount, pszIdsData, 250 * 2);
+			int nRet = pRecipeList->addRecipePacket(totalMasterRecipeCount, toatlGroupCount, currentGroupCount, pszIdsData, 250 * 2);
 			if (MRLRC_CURRENT_RECIPE_COMPLETE == nRet) {
 				lock();
 				for (auto item : m_mapRecipes) {
@@ -304,9 +315,10 @@
 			if (m_nSyncStatus == SS_SYNCING) {
 				m_nTimeoutCount++;
 				if (m_nTimeoutCount > 10) {
-					m_nSyncStatus = SS_TIMEOUT;
 					unlock();
+					syncTimeout();
 					TRACE("CRecipesManager::TimeoutCheckWorkingProc 超时退出\n");
+					lock();
 				}
 			}
 

--
Gitblit v1.9.3