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