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/CControlJob.cpp |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/SourceCode/Bond/Servo/CControlJob.cpp b/SourceCode/Bond/Servo/CControlJob.cpp
index 02939b2..cb1e794 100644
--- a/SourceCode/Bond/Servo/CControlJob.cpp
+++ b/SourceCode/Bond/Servo/CControlJob.cpp
@@ -38,6 +38,12 @@
         m_tEnd = src.m_tEnd;
     }
 
+    void CControlJob::setId(std::string& id)
+    {
+        m_cjId = trimCopy(id);
+        clampString(m_cjId, MAX_ID_LEN);
+    }
+
     bool CControlJob::addPJ(const std::string& pjId) {
         if (pjId.empty()) return false;
         auto id = pjId;
@@ -96,6 +102,11 @@
     const std::vector<CControlJob::ValidationIssue>& CControlJob::issues()
     {
         return m_issues;
+    }
+
+    void CControlJob::clearIssues()
+    {
+        m_issues.clear();
     }
 
     bool CControlJob::validateForCreate(
@@ -209,9 +220,11 @@
         return true;
     }
 
-    bool CControlJob::abort() {
+    bool CControlJob::abort(std::string reason) {
         if (m_state == CJState::Completed || m_state == CJState::Aborted || m_state == CJState::Failed)
             return false;
+        m_failReason = trimCopy(reason);
+        clampString(m_failReason, 128);
         m_state = CJState::Aborted;
         markEnd();
         return true;

--
Gitblit v1.9.3