From 2a7efcf2a4bac5e7f9813975c87683ea09fb984e Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期六, 24 一月 2026 10:47:39 +0800
Subject: [PATCH] 1.修复曲线数据未触发问题;

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

diff --git a/SourceCode/Bond/Servo/CControlJob.cpp b/SourceCode/Bond/Servo/CControlJob.cpp
index be1b43a..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;
@@ -60,6 +66,28 @@
         return true;
     }
 
+    bool CControlJob::addPjPointer(CProcessJob* pj)
+    {
+        for (auto item : m_pjs) {
+            if (item->id().compare(pj->id()) == 0) return false;
+        }
+
+        m_pjs.push_back(pj);
+        return true;
+    }
+
+    bool CControlJob::removePjPointer(const std::string& id)
+    {
+        for(auto iter = m_pjs.begin(); iter != m_pjs.end(); ++iter) {
+            if ((*iter)->id().compare(id) == 0) {
+                m_pjs.erase(iter);
+                return true;
+            }
+        }
+
+        return false;
+    }
+
     bool CControlJob::removePJ(const std::string& pjId) {
         auto it = std::find(m_pjIds.begin(), m_pjIds.end(), pjId);
         if (it == m_pjIds.end()) return false;
@@ -74,6 +102,11 @@
     const std::vector<CControlJob::ValidationIssue>& CControlJob::issues()
     {
         return m_issues;
+    }
+
+    void CControlJob::clearIssues()
+    {
+        m_issues.clear();
     }
 
     bool CControlJob::validateForCreate(
@@ -187,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