From 46cf08d41dc284ec4f8438b2dead24e2a2c16cca Mon Sep 17 00:00:00 2001
From: Raphael Grimm <raphael.grimm@kit.edu>
Date: Sat, 21 Apr 2018 20:54:54 +0200
Subject: [PATCH] Add
 RobotUnitModule::ControllerManagement::getNJointControllerNames

---
 .../RobotUnitModuleControllerManagement.cpp         | 13 +++++++++++++
 .../RobotUnitModuleControllerManagement.h           |  8 ++++++++
 2 files changed, 21 insertions(+)

diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControllerManagement.cpp b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControllerManagement.cpp
index 8668d87f8..de6fd4c59 100644
--- a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControllerManagement.cpp
+++ b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControllerManagement.cpp
@@ -269,6 +269,19 @@ namespace armarx
             auto guard = getGuard();
             return getMapKeys(nJointControllers);
         }
+        std::vector<std::string> ControllerManagement::getNJointControllerNames(const std::vector<NJointControllerPtr> &ctrls) const
+        {
+            std::vector<std::string> result;
+            result.reserve(ctrls.size());
+            for(const auto& ctrl : ctrls)
+            {
+                if(ctrl)
+                {
+                    result.emplace_back(ctrl->getInstanceName());
+                }
+            }
+            return result;
+        }
 
 
         void ControllerManagement::activateNJointControllers(const Ice::StringSeq& names, const Ice::Current&)
diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControllerManagement.h b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControllerManagement.h
index f48cf5976..914d3c19c 100644
--- a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControllerManagement.h
+++ b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleControllerManagement.h
@@ -293,6 +293,14 @@ namespace armarx
              * @throw If there is no \ref NJointcontroller for \param name
              */
             const NJointControllerPtr& getNJointControllerNotNull(const std::string& name) const;
+
+            /**
+             * @brief Returns the names of given \ref NJointController "NJointControllers"
+             * @param ctrls The \ref NJointController "NJointControllers"
+             * @return The names of given \ref NJointController "NJointControllers"
+             */
+            std::vector<std::string> getNJointControllerNames(const std::vector<armarx::NJointControllerPtr>& ctrls) const;
+
             // //////////////////////////////////////////////////////////////////////////////////////// //
             // //////////////////////////////////// implementation //////////////////////////////////// //
             // //////////////////////////////////////////////////////////////////////////////////////// //
-- 
GitLab