From b17d444a0da9cabf775f90be04d14fac113bb9fb Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期六, 13 九月 2025 17:56:36 +0800
Subject: [PATCH] 1.优化代码; 2.增加CControlJobManagerDlg对话框, 准备处理批任务。

---
 SourceCode/Bond/Servo/CControlJob.cpp |   32 ++++++++++++--------------------
 1 files changed, 12 insertions(+), 20 deletions(-)

diff --git a/SourceCode/Bond/Servo/CControlJob.cpp b/SourceCode/Bond/Servo/CControlJob.cpp
index 8dc2b18..be1b43a 100644
--- a/SourceCode/Bond/Servo/CControlJob.cpp
+++ b/SourceCode/Bond/Servo/CControlJob.cpp
@@ -4,9 +4,12 @@
 #include "SerializeUtil.h"
 
 static inline std::string trimCopy(std::string s) {
-    auto notspace = [](int ch) { return !std::isspace(ch); };
-    s.erase(s.begin(), std::find_if(s.begin(), s.end(), notspace));
-    s.erase(std::find_if(s.rbegin(), s.rend(), notspace).base(), s.end());
+    s.erase(s.begin(),
+        std::find_if(s.begin(), s.end(),
+            [](char c) { return !std::isspace(static_cast<unsigned char>(c)); }));
+    s.erase(std::find_if(s.rbegin(), s.rend(),
+        [](char c) { return !std::isspace(static_cast<unsigned char>(c)); }).base(),
+        s.end());
     return s;
 }
 
@@ -281,23 +284,12 @@
         out = CControlJob(cjId);
         out.setPriority(prio);
 
-        // 直接恢复内部状态(若你要求走状态机,可在这里按合法过渡调用 queue()/start()/...)
-        // 简化:直接赋值(你在 CControlJob.cpp 内部,可访问私有成员)
-        struct Access : CControlJob {
-            using CControlJob::m_state;
-            using CControlJob::m_failReason;
-            using CControlJob::m_tQueued;
-            using CControlJob::m_tStart;
-            using CControlJob::m_tEnd;
-            using CControlJob::m_pjIds;
-        };
-        auto& a = reinterpret_cast<Access&>(out);
-        a.m_state = static_cast<CJState>(st);
-        a.m_failReason = std::move(failText);
-        a.m_tQueued = std::move(tQ);
-        a.m_tStart = std::move(tS);
-        a.m_tEnd = std::move(tE);
-        a.m_pjIds = std::move(pjIds);
+        out.m_state = static_cast<CJState>(st);
+        out.m_failReason = std::move(failText);
+        out.m_tQueued = std::move(tQ);
+        out.m_tStart = std::move(tS);
+        out.m_tEnd = std::move(tE);
+        out.m_pjIds = std::move(pjIds);
 
         return true;
     }

--
Gitblit v1.9.3