From 76b3f5ecc7e7d2173041a43ca7fcc44ee2abf536 Mon Sep 17 00:00:00 2001 From: Raphael Grimm <raphael.grimm@kit.edu> Date: Thu, 9 Jul 2020 13:06:02 +0200 Subject: [PATCH] Improve RobotNameHelper * const correct * constructors * add getProfiles() * add code to test statechart --- .../RobotNameHelper.cpp | 11 ++++++--- .../RobotStatechartHelpers/RobotNameHelper.h | 23 ++++++++++++++----- .../RobotNameHelperTestGroup/TestGetNames.cpp | 1 + 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp index 10cb284d6..1a5afd0c7 100644 --- a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp +++ b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp @@ -65,12 +65,12 @@ namespace armarx return RobotNameHelperPtr(new RobotNameHelper(robotInfo, profile)); } - RobotNameHelper::Arm RobotNameHelper::getArm(const std::string& side) + RobotNameHelper::Arm RobotNameHelper::getArm(const std::string& side) const { return Arm(shared_from_this(), side); } - RobotNameHelper::RobotArm RobotNameHelper::getRobotArm(const std::string& side, const VirtualRobot::RobotPtr& robot) + RobotNameHelper::RobotArm RobotNameHelper::getRobotArm(const std::string& side, const VirtualRobot::RobotPtr& robot) const { return RobotArm(Arm(shared_from_this(), side), robot); } @@ -185,7 +185,7 @@ namespace armarx return RobotArm(*this, robot); } - RobotNameHelper::Arm::Arm(const std::shared_ptr<RobotNameHelper>& rnh, const std::string& side) + RobotNameHelper::Arm::Arm(const std::shared_ptr<const RobotNameHelper>& rnh, const std::string& side) : rnh(rnh), side(side) { @@ -236,4 +236,9 @@ namespace armarx { } + + const std::vector<std::string>& RobotNameHelper::getProfiles() const + { + return profiles; + } } diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h index eca096cc5..23c773124 100644 --- a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h +++ b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h @@ -71,11 +71,16 @@ namespace armarx std::string getHandModelPackage() const; RobotArm addRobot(const VirtualRobot::RobotPtr& robot) const; + Arm(const std::shared_ptr<const RobotNameHelper>& rnh, const std::string& side); + Arm() = default; + Arm(Arm&&) = default; + Arm(const Arm&) = default; + Arm& operator=(Arm&&) = default; + Arm& operator=(const Arm&) = default; private: - Arm(const std::shared_ptr<RobotNameHelper>& rnh, const std::string& side); std::string select(const std::string& path) const; - std::shared_ptr<RobotNameHelper> rnh; + std::shared_ptr<const RobotNameHelper> rnh; std::string side; }; @@ -92,8 +97,13 @@ namespace armarx Eigen::Matrix4f getTcp2HandRootTransform() const; Arm getArm() const; - private: RobotArm(const Arm& arm, const VirtualRobot::RobotPtr& robot); + RobotArm() = default; + RobotArm(RobotArm&&) = default; + RobotArm(const RobotArm&) = default; + RobotArm& operator=(RobotArm&&) = default; + RobotArm& operator=(const RobotArm&) = default; + private: const Arm arm; VirtualRobot::RobotPtr robot; @@ -103,11 +113,12 @@ namespace armarx static RobotNameHelperPtr Create(const RobotInfoNodePtr& robotInfo, const StatechartProfilePtr& profile); - Arm getArm(const std::string& side); - RobotArm getRobotArm(const std::string& side, const VirtualRobot::RobotPtr& robot); + RobotNameHelper(const RobotInfoNodePtr& robotInfo, const StatechartProfilePtr& profile = nullptr); + Arm getArm(const std::string& side) const; + RobotArm getRobotArm(const std::string& side, const VirtualRobot::RobotPtr& robot) const; + const std::vector<std::string>& getProfiles() const; private: - RobotNameHelper(const RobotInfoNodePtr& robotInfo, const StatechartProfilePtr& profile); RobotNameHelper& self() { return *this; diff --git a/source/RobotAPI/statecharts/RobotNameHelperTestGroup/TestGetNames.cpp b/source/RobotAPI/statecharts/RobotNameHelperTestGroup/TestGetNames.cpp index 50740dd9d..ee40934a1 100644 --- a/source/RobotAPI/statecharts/RobotNameHelperTestGroup/TestGetNames.cpp +++ b/source/RobotAPI/statecharts/RobotNameHelperTestGroup/TestGetNames.cpp @@ -47,6 +47,7 @@ void TestGetNames::run() ARMARX_IMPORTANT << "LeftArm: " << arm.getKinematicChain()->getName(); ARMARX_IMPORTANT << "LeftArm TCP: " << arm.getTCP()->getName(); //ARMARX_IMPORTANT << "HandControllerName: " << arm.getHandControllerName(); + ARMARX_IMPORTANT << "Profiles: " << getRobotNameHelper()->getProfiles(); } -- GitLab