From 1efb832676e8ad27e7a495dba6ffc19479e0c76f Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期四, 04 九月 2025 15:51:33 +0800
Subject: [PATCH] 1.机器配方参数的获取;

---
 SourceCode/Bond/Servo/CBonder.cpp |   57 +++++++++++++++++++++++++++++----------------------------
 1 files changed, 29 insertions(+), 28 deletions(-)

diff --git a/SourceCode/Bond/Servo/CBonder.cpp b/SourceCode/Bond/Servo/CBonder.cpp
index 3b49a81..46108dc 100644
--- a/SourceCode/Bond/Servo/CBonder.cpp
+++ b/SourceCode/Bond/Servo/CBonder.cpp
@@ -224,13 +224,14 @@
 		{
 			// recipe parameter report
 			CEqReadStep* pStep = new CEqReadStep(m_nIndex == 0 ? 0xaa54 : 0xea54, 257 * 2,
-				[&](void* pFrom, int code, const char* pszData, size_t size) -> int {
+				[&, pStep](void* pFrom, int code, const char* pszData, size_t size) -> int {
+					CEqReadStep* pTmpStep = (CEqReadStep*)pFrom;
+					short ret = MRLRC_OK;
 					if (code == ROK && pszData != nullptr && size > 0) {
 						// 此处解释配方数据
-						short ret = decodeRecipeParameterReport(pszData, size);
-						pStep->setReturnCode(ret);
+						ret = decodeRecipeParameterReport(pszData, size);
 					}
-					pStep->setReturnCode(MRLRC_OK);
+					pTmpStep->setReturnCode(ret);
 					return -1;
 				});
 			pStep->setName(STEP_EQ_RECIPE_PARAMETER);
@@ -523,7 +524,7 @@
 		return m_nIndex == 0 ? 15000 : 20000;
 	}
 
-	int CBonder::parsingParams(const char* pszData, size_t size, std::vector<CParam>& parsms)
+	int CBonder::parsingParams(const char* pszData, size_t size, std::vector<CParam>& params)
 	{
 		ASSERT(pszData);
 		if (size < 250) return 0;
@@ -532,113 +533,113 @@
 
 		// 1.校正对位延时
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
-		parsms.push_back(CParam("校正对位延时", 0, "", v * 0.01f));
+		params.push_back(CParam("校正对位延时", "", "", v * 0.01f));
 		i += 2;
 
 		// 2.保压时间
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
-		parsms.push_back(CParam("保压时间", 0, "", v * 0.01f));
+		params.push_back(CParam("保压时间", "", "", v * 0.01f));
 		i += 2;
 
 		// 3.腔体破真空延时
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
-		parsms.push_back(CParam("腔体破真空延时", 0, "", v * 0.01f));
+		params.push_back(CParam("腔体破真空延时", "", "", v * 0.01f));
 		i += 2;
 
 		// 4.腔体分子泵启动延时
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
-		parsms.push_back(CParam("腔体分子泵启动延时", 0, "", v * 0.1f));
+		params.push_back(CParam("腔体分子泵启动延时", "", "", v * 0.1f));
 		i += 2;
 
 		// 5.腔体贴附抽真空延时
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
-		parsms.push_back(CParam("腔体贴附抽真空延时", 0, "", v * 0.1f));
+		params.push_back(CParam("腔体贴附抽真空延时", "", "", v * 0.1f));
 		i += 2;
 
 		// 6.加热等待延时
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
-		parsms.push_back(CParam("加热等待延时", 0, "", v * 0.1f));
+		params.push_back(CParam("加热等待延时", "", "", v * 0.1f));
 		i += 2;
 
 		// 7.气囊压力设定
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("气囊压力设定", 0, "", v * 0.1f));
+		params.push_back(CParam("气囊压力设定", "", "", v * 0.001f));
 		i += 4;
 
 		// 8.气囊加压速率
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("气囊加压速率", 0, "", v * 0.1f));
+		params.push_back(CParam("气囊加压速率", "", "", v * 0.001f));
 		i += 4;
 
 		// 9.气囊泄压速率
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("气囊泄压速率", 0, "", v * 0.1f));
+		params.push_back(CParam("气囊泄压速率", "", "", v * 0.001f));
 		i += 4;
 
 		// 10.贴附压力上限
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("贴附压力上限", 0, "", v * 0.1f));
+		params.push_back(CParam("贴附压力上限", "", "", v * 0.1f));
 		i += 4;
 
 		// 11.Z轴转矩速度设定
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("上腔Z轴转矩速度设定", 0, "", v * 0.001f));
+		params.push_back(CParam("上腔Z轴转矩速度设定", "", "", v * 0.001f));
 		i += 4;
 
 		// 12.上腔温度设定
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
-		parsms.push_back(CParam("上腔温度设定", 0, "", v * 0.1f));
+		params.push_back(CParam("上腔温度设定", "", "", v * 0.1f));
 		i += 2;
 
 		// 13.下腔温度设定
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
-		parsms.push_back(CParam("下腔温度设定", 0, "", v * 0.1f));
+		params.push_back(CParam("下腔温度设定", "", "", v * 0.1f));
 		i += 2;
 
 		// 14.上腔Z轴预贴合位速度
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("上腔Z轴预贴合位速度", 0, "", v * 0.001f));
+		params.push_back(CParam("上腔Z轴预贴合位速度", "", "", v * 0.001f));
 		i += 4;
 
 		// 15.上腔Z轴贴附位速度
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("上腔Z轴贴附位速度", 0, "", v * 0.001f));
+		params.push_back(CParam("上腔Z轴贴附位速度", "", "", v * 0.001f));
 		i += 4;
 
 		// 16.上腔Z上腔加热位间距
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("上腔Z上腔加热位间距", 0, "", v * 0.001f));
+		params.push_back(CParam("上腔Z上腔加热位间距", "", "", v * 0.001f));
 		i += 4;
 
 		// 17.上腔贴附位压入量
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("上腔贴附位压入量", 0, "", v * 0.001f));
+		params.push_back(CParam("上腔贴附位压入量", "", "", v * 0.001f));
 		i += 4;
 
 		// 18.上腔Z轴破真空距离
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("上腔Z轴破真空距离", 0, "", v * 0.001f));
+		params.push_back(CParam("上腔Z轴破真空距离", "", "", v * 0.001f));
 		i += 4;
 
 		// 19.下顶Pin破真空距离
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("下顶Pin破真空距离", 0, "", v * 0.001f));
+		params.push_back(CParam("下顶Pin破真空距离", "", "", v * 0.001f));
 		i += 4;
 
 		// 20.下顶Pin加热位间距
 		v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
-		parsms.push_back(CParam("下顶Pin加热位间距", 0, "", v * 0.001f));
+		params.push_back(CParam("下顶Pin加热位间距", "", "", v * 0.001f));
 		i += 4;
 
 		// 21.腔体真空泵真空规设定值
-		parsms.push_back(CParam("腔体真空泵真空规设定值", 0, "", (double)toFloat(&pszData[i])));
+		params.push_back(CParam("腔体真空泵真空规设定值", "", "", (double)toFloat(&pszData[i])));
 		i += 4;
 
 		// 22.腔体分子泵到达设定值
-		parsms.push_back(CParam("腔体分子泵到达设定值", 0, "", (double)toFloat(&pszData[i])));
+		params.push_back(CParam("腔体分子泵到达设定值", "", "", (double)toFloat(&pszData[i])));
 		i += 4;
 
 
-		return (int)parsms.size();
+		return (int)params.size();
 	}
 }

--
Gitblit v1.9.3