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