From 96579a48b3b558f5ce58cffe372b1f563a9e62ce Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期三, 03 九月 2025 17:23:56 +0800
Subject: [PATCH] 1.配方列表和配方参数获取合并在线程中获取,并更新状态到对话框; 2.配方参数获取; 3.Bonder, AOI, 真空烘烤, 冷却烧烤配方参数解释。

---
 SourceCode/Bond/Servo/CRecipeList.cpp |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/CRecipeList.cpp b/SourceCode/Bond/Servo/CRecipeList.cpp
index 01eec82..5f1fbd1 100644
--- a/SourceCode/Bond/Servo/CRecipeList.cpp
+++ b/SourceCode/Bond/Servo/CRecipeList.cpp
@@ -77,10 +77,47 @@
 		return m_ids;
 	}
 
+	std::unordered_map<short, std::vector<uint8_t>>& CRecipeList::getParamsRawData()
+	{
+		return m_paramsRawData;
+	}
+
 	void CRecipeList::reset()
 	{
 		m_nToatlGroupCount = 0;
 		m_nCurrentGroupCount = 0;
 		m_ids.clear();
+		m_paramsRawData.clear();
 	}
+
+	int CRecipeList::addParamsPacket(int totalCount, int totalGroup, int currentGroup,
+		short unitId, short recipeId,
+		const char* pszData, size_t size)
+	{
+		if (m_nToatlGroupCount == 0) m_nToatlGroupCount = totalGroup;
+		if (m_nToatlGroupCount != totalGroup) {
+			reset();
+			return MRLRC_GROUP_COUNT_NG;
+		}
+		if (currentGroup == 0) {
+			reset();
+		}
+		if (m_nCurrentGroupCount + 1 > currentGroup) {
+			return MRLRC_DUPLICATION_GROUP_COUNT_NG;
+		}
+		if (m_nCurrentGroupCount + 1 < currentGroup) {
+			return ORDER_BY_GROUP_COUNT_NG;
+		}
+		m_nCurrentGroupCount++;
+
+		m_paramsRawData[recipeId].insert(m_paramsRawData[recipeId].end(), (uint8_t*)(pszData), (uint8_t*)(pszData) + size);
+		if (m_nCurrentGroupCount == m_nToatlGroupCount) {
+			// 解释数据就交给应用层吧
+			return MRLRC_CURRENT_RECIPE_COMPLETE;
+		}
+
+
+		return MRLRC_CONTINUE;
+	}
+
 }

--
Gitblit v1.9.3