From 5bcbdac9793e19713d41b58c9eeefbd0818d192b Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期二, 06 五月 2025 16:50:05 +0800
Subject: [PATCH] 1.暂存配方参数获取

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

diff --git a/SourceCode/Bond/Servo/CBonder.cpp b/SourceCode/Bond/Servo/CBonder.cpp
index 5276f30..0a0842a 100644
--- a/SourceCode/Bond/Servo/CBonder.cpp
+++ b/SourceCode/Bond/Servo/CBonder.cpp
@@ -188,16 +188,52 @@
 				[&](int code, const char* pszData, size_t size) -> int {
 					if (code == ROK && pszData != nullptr && size > 0) {
 						// 此处解释配方数据
+						short ret = decodeRecipeListReport(pszData, size);
+						pStep->setReturnCode(ret);
 					}
+					pStep->setReturnCode(MRLRC_OK);
+					return -1;
 				});
 			pStep->setName(STEP_EQ_MASTER_RECIPE_LIST);
 			pStep->setWriteSignalDev(m_nIndex == 0 ? 0x34b : 0x64b);
+			pStep->setReturnDev(m_nIndex == 0 ? 0x126d : 0x1bbd);
 			if (addStep(STEP_ID_MASTER_RECIPE_LIST_REPORT, pStep) != 0) {
 				delete pStep;
 			}
 		}
 
 		{
+			// 请求配方参数
+			CEqWriteStep* pStep = new CEqWriteStep();
+			pStep->setName(STEP_EQ_RECIPE_PARAMETER_REQ);
+			pStep->setWriteSignalDev(m_nIndex == 0 ? 0x367 : 0x667);
+			pStep->setDataDev(m_nIndex == 0 ? 0x125b : 0x1bab);
+			if (addStep(STEP_ID_RECIPE_PARAMETER_CMD_REPLY, pStep) != 0) {
+				delete pStep;
+			}
+		}
+
+		{
+			// recipe parameter report
+			CEqReadStep* pStep = new CEqReadStep(m_nIndex == 0 ? 0xaa54 : 0xea54, 257 * 2,
+				[&](int code, const char* pszData, size_t size) -> int {
+					if (code == ROK && pszData != nullptr && size > 0) {
+						// 此处解释配方数据
+						short ret = decodeRecipeParameterReport(pszData, size);
+						pStep->setReturnCode(ret);
+					}
+					pStep->setReturnCode(MRLRC_OK);
+					return -1;
+				});
+			pStep->setName(STEP_EQ_RECIPE_PARAMETER);
+			pStep->setWriteSignalDev(m_nIndex == 0 ? 0x34c : 0x64c);
+			pStep->setReturnDev(m_nIndex == 0 ? 0x126c : 0x1bbc);
+			if (addStep(STEP_ID_RECIPE_PARAMETER_REPORT, pStep) != 0) {
+				delete pStep;
+			}
+		}
+
+		{
 			CEqJobEventStep* pStep = new CEqJobEventStep();
 			pStep->setName(STEP_EQ_RECEIVED_JOB_UPS1);
 			pStep->setWriteSignalDev(m_nIndex == 0 ? 0x300 : 0x600);

--
Gitblit v1.9.3