From 8f33a7f54d2e3d33bfd0bfcef3cc1ef354c18064 Mon Sep 17 00:00:00 2001 From: Peter Albrecht <albrecpe@gmail.com> Date: Sat, 21 Oct 2023 17:17:53 +0200 Subject: [PATCH] Implemented toString for SkillExecutionID --- .../SkillManagerMonitorWidgetController.cpp | 39 +++++++++++-------- .../skills/core/SkillExecutionID.cpp | 8 ++++ .../libraries/skills/core/SkillExecutionID.h | 6 +++ 3 files changed, 36 insertions(+), 17 deletions(-) diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp index bb7ac21c9..db2a98e79 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp @@ -488,23 +488,28 @@ namespace armarx void SkillManagerMonitorWidgetController::stopSkill() { - std::string c = selectedSkill.skillExecutionId.skillId.skillName; - ARMARX_IMPORTANT << "Stop skill triggered: " << c; - // std::scoped_lock l(updateMutex); - // if (selectedSkill.skillId.fullySpecified()) - // { - // return; - // } - - // const auto& skillDescriptions = skills.at(*selectedSkill.skillId.providerId); - // if (!skillDescriptions.count(selectedSkill.skillId.skillName)) - // { - // return; - // } - - // ARMARX_INFO << "Stopping skill from GUI: " << selectedSkill.skillId; - - // manager->abortSkill(selectedSkill.skillId); + std::scoped_lock l(updateMutex); + + /* + * Example skills are not fully specified; disabled check + * + if (selectedSkill.skillExecutionId.skillId.fullySpecified()) + { + ARMARX_INFO << "The user requested to stop a skill, which was not fully specified!"; + return; + } + + const auto& skillDescriptions = skills.at(*selectedSkill.skillId.providerId); + if (!skillDescriptions.count(selectedSkill.skillId.skillName)) + { + return; + } + */ + + ARMARX_INFO << "Stopping skill from GUI: " + << selectedSkill.skillExecutionId.skillId.skillName; + + memory->abortSkill(selectedSkill.skillExecutionId.toManagerIce()); } void diff --git a/source/RobotAPI/libraries/skills/core/SkillExecutionID.cpp b/source/RobotAPI/libraries/skills/core/SkillExecutionID.cpp index f048167a1..3c52c6be7 100644 --- a/source/RobotAPI/libraries/skills/core/SkillExecutionID.cpp +++ b/source/RobotAPI/libraries/skills/core/SkillExecutionID.cpp @@ -47,5 +47,13 @@ namespace armarx armarx::core::time::fromIce(i.executionStartedTime, t); return {skills::SkillID::FromIce(i.skillId, providerName), i.executorName, t}; } + + std::string + SkillExecutionID::toString(const std::string& prefix) const + { + return skillId.toString(prefix) + ENTER_SEPARATOR + executorName + SEPARATOR + + executionStartedTime.toDateTimeString() + EXIT_SEPARATOR; + } + } // namespace skills } // namespace armarx diff --git a/source/RobotAPI/libraries/skills/core/SkillExecutionID.h b/source/RobotAPI/libraries/skills/core/SkillExecutionID.h index a39d82bd2..bd1bfb326 100644 --- a/source/RobotAPI/libraries/skills/core/SkillExecutionID.h +++ b/source/RobotAPI/libraries/skills/core/SkillExecutionID.h @@ -21,7 +21,11 @@ namespace armarx SkillID skillId; std::string executorName; armarx::core::time::DateTime executionStartedTime; + static const constexpr char* UNKNOWN = "UNKNOWN"; + static const constexpr char* ENTER_SEPARATOR = "["; + static const constexpr char* EXIT_SEPARATOR = "]"; + static const constexpr char* SEPARATOR = "@"; SkillExecutionID() = delete; SkillExecutionID(const SkillID&, @@ -61,6 +65,8 @@ namespace armarx static SkillExecutionID FromIce(const skills::provider::dto::SkillExecutionID&, const std::optional<skills::ProviderID>& providerName); + + std::string toString(const std::string& prefix = "") const; }; } // namespace skills -- GitLab