From bdf0dc4cb183d3fec40e1d51b3bb94b7e53d0a55 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期日, 04 一月 2026 10:45:07 +0800
Subject: [PATCH] 1.修复报文字段差异风险: S1F3:项目用 getSubItemU4(0) 取 SVID;日志里有 U2 的情况,可能导致解析失败后回退成 SV=0。 S6F11:项目发送 DATAID(U4) + CEID(U4);日志样例里第一个字段是 U2,可能存在类型/字段定义不一致。
---
SourceCode/Bond/Servo/CReport.cpp | 37 ++++++++++++++++++++++++++++++++++++-
1 files changed, 36 insertions(+), 1 deletions(-)
diff --git a/SourceCode/Bond/Servo/CReport.cpp b/SourceCode/Bond/Servo/CReport.cpp
index a880f2f..29d57d3 100644
--- a/SourceCode/Bond/Servo/CReport.cpp
+++ b/SourceCode/Bond/Servo/CReport.cpp
@@ -8,9 +8,10 @@
m_nReportId = 0;
}
- CReport::CReport(unsigned int reportId)
+ CReport::CReport(unsigned int reportId, const std::vector<unsigned int>& vids)
{
m_nReportId = reportId;
+ m_vids = vids;
}
CReport::~CReport()
@@ -58,4 +59,38 @@
return nullptr;
}
+
+ std::vector<CVariable*>& CReport::getVariables()
+ {
+ return m_variabels;
+ }
+
+ std::string CReport::getVariablesIdsText()
+ {
+ std::string strResult, strName;
+ for (int i = 0; i < m_vids.size(); i++) {
+ strResult += std::to_string(m_vids[i]);
+ strResult += "(";
+ strResult += (getVariableName(m_vids[i], strName) ?
+ strName : _T("null"));
+ strResult += ")";
+ if (i != m_vids.size() - 1) {
+ strResult += ",";
+ }
+ }
+
+ return strResult;
+ }
+
+ bool CReport::getVariableName(unsigned int vid, std::string& strName)
+ {
+ for (auto item : m_variabels) {
+ if (item->getVarialbleId() == vid) {
+ strName = item->getName();
+ return true;
+ }
+ }
+
+ return false;
+ }
}
--
Gitblit v1.9.3