From 3f000671e15acd2de87c8588d7f09c0dc103bd7b Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 08 九月 2025 13:56:23 +0800
Subject: [PATCH] 1.SVData获取和解释,待测试;
---
SourceCode/Bond/Servo/CBakeCooling.cpp | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 157 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/CBakeCooling.cpp b/SourceCode/Bond/Servo/CBakeCooling.cpp
index dbfa816..dedf8a4 100644
--- a/SourceCode/Bond/Servo/CBakeCooling.cpp
+++ b/SourceCode/Bond/Servo/CBakeCooling.cpp
@@ -334,6 +334,26 @@
}
}
+ // FAC Data Report
+ addFacDataReportStep(0x12589, 0x94d, 1);
+ /*
+ {
+ CEqReadStep* pStep = new CEqReadStep(0x12589, 133 * 2,
+ [&](void* pFrom, int code, const char* pszData, size_t size) -> int {
+ if (code == ROK && pszData != nullptr && size > 0) {
+ decodeFacDataReport((CStep*)pFrom, pszData, size);
+ }
+ return -1;
+ });
+ pStep->setName(STEP_EQ_FAC_DATA_REPORT);
+ pStep->setProp("Port", (void*)1);
+ pStep->setWriteSignalDev(0x94d);
+ if (addStep(STEP_ID_FAC_DATA_REPORT, pStep) != 0) {
+ delete pStep;
+ }
+ }
+ */
+
// process start/end report
{
CEqReadStep* pStep = new CEqReadStep(0x11D3F, 13 * 2,
@@ -465,4 +485,141 @@
return (int)params.size();
}
+ int CBakeCooling::parsingProcessData(const char* pszData, size_t size, std::vector<CParam>& params)
+ {
+ return parsingParams(pszData, size, params);
+ }
+
+ int CBakeCooling::parsingSVData(const char* pszData, size_t size, std::vector<CParam>& params)
+ {
+ /*
+ 1 A烘烤工艺运行步骤 1Word 123456
+ 2 A烘烤温控表1当前值 2Word 12345.6
+ 3 A烘烤温控表2当前值 2Word 12345.6
+ 4 A烘烤温控表4当前值 2Word 12345.6
+ 5 A烘烤温控表5当前值 2Word 12345.6
+ 6 A烘烤温控表6当前值 2Word 12345.6
+ 7 A烘烤温控表7当前值 2Word 12345.6
+ 8 A烘烤剩余时间 1Word 1234.56
+ 9 A冷却工艺运行步骤 1Word 123456
+ 10 A腔冷却剩余时间 1Word 1234.56
+ 11 B烘烤工艺运行步骤 1Word 123456
+ 12 B烘烤温控表1当前值 2Word 12345.6
+ 13 B烘烤温控表2当前值 2Word 12345.6
+ 14 B烘烤温控表4当前值 2Word 12345.6
+ 15 B烘烤温控表5当前值 2Word 12345.6
+ 16 B烘烤温控表6当前值 2Word 12345.6
+ 17 B烘烤温控表7当前值 2Word 12345.6
+ 18 B烘烤剩余时间 1Word 1234.56
+ 19 B冷却工艺运行步骤 1Word 123456
+ 20 B腔冷却剩余时间 1Word 1234.56
+ */
+
+ ASSERT(pszData);
+ if (size < 125) return 0;
+ int i = 0, v;
+
+
+ // 1.A烘烤工艺运行步骤
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
+ params.push_back(CParam("A烘烤工艺运行步骤", "", this->getName().c_str(), v));
+ i += 2;
+
+ // 2.A烘烤温控表1当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("A烘烤温控表1当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 3.A烘烤温控表2当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("A烘烤温控表2当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 4.A烘烤温控表4当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("A烘烤温控表4当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 5.A烘烤温控表5当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("A烘烤温控表5当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 6.A烘烤温控表6当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("A烘烤温控表6当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 7.A烘烤温控表7当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("A烘烤温控表7当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 8.A烘烤剩余时间
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
+ params.push_back(CParam("A烘烤剩余时间", "", this->getName().c_str(), v * 0.01f));
+ i += 2;
+
+ // 9.A冷却工艺运行步骤
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
+ params.push_back(CParam("A冷却工艺运行步骤", "", this->getName().c_str(), v));
+ i += 2;
+
+ // 10.A腔冷却剩余时间
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
+ params.push_back(CParam("A腔冷却剩余时间", "", this->getName().c_str(), v * 0.01f));
+ i += 2;
+
+ // 11.B烘烤工艺运行步骤
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
+ params.push_back(CParam("B烘烤工艺运行步骤", "", this->getName().c_str(), v));
+ i += 2;
+
+ // 12.B烘烤温控表1当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("B烘烤温控表1当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 13.B烘烤温控表2当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("B烘烤温控表2当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 14.B烘烤温控表4当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("B烘烤温控表4当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 15.B烘烤温控表5当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("B烘烤温控表5当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 16.B烘烤温控表6当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("B烘烤温控表6当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 17.B烘烤温控表7当前值
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
+ params.push_back(CParam("B烘烤温控表7当前值", "", this->getName().c_str(), v * 0.1f));
+ i += 4;
+
+ // 18.B烘烤剩余时间
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
+ params.push_back(CParam("B烘烤剩余时间", "", this->getName().c_str(), v * 0.01f));
+ i += 2;
+
+ // 19.B冷却工艺运行步骤
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
+ params.push_back(CParam("B冷却工艺运行步骤", "", this->getName().c_str(), v));
+ i += 2;
+
+ // 20.B腔冷却剩余时间
+ v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
+ params.push_back(CParam("B腔冷却剩余时间", "", this->getName().c_str(), v * 0.01f));
+ i += 2;
+
+ return (int)params.size();
+ }
}
--
Gitblit v1.9.3