From 2f66da6930d069ad61ea653213e9f92736930946 Mon Sep 17 00:00:00 2001
From: Raphael Grimm <raphael.grimm@kit.edu>
Date: Wed, 16 May 2018 17:45:07 +0200
Subject: [PATCH] Fix NJointTaskSpaceImpedanceDMPController for RobotUnit v3

---
 .../NJointTaskSpaceImpedanceDMPController.cpp          | 10 +++++-----
 .../NJointTaskSpaceImpedanceDMPController.h            |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.cpp b/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.cpp
index 6c773caad..34fc12893 100644
--- a/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.cpp
+++ b/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.cpp
@@ -4,19 +4,19 @@ namespace armarx
 {
     NJointControllerRegistration<NJointTaskSpaceImpedanceDMPController> registrationControllerNJointTaskSpaceImpedanceDMPController("NJointTaskSpaceImpedanceDMPController");
 
-    NJointTaskSpaceImpedanceDMPController::NJointTaskSpaceImpedanceDMPController(armarx::NJointControllerDescriptionProviderInterfacePtr prov, const armarx::NJointControllerConfigPtr& config, const VirtualRobot::RobotPtr&)
+    NJointTaskSpaceImpedanceDMPController::NJointTaskSpaceImpedanceDMPController(const RobotUnitPtr& robotUnit, const armarx::NJointControllerConfigPtr& config, const VirtualRobot::RobotPtr&)
     {
         cfg = NJointTaskSpaceImpedanceDMPControllerConfigPtr::dynamicCast(config);
-        RobotUnitPtr robotUnit = RobotUnitPtr::dynamicCast(prov);
-        VirtualRobot::RobotNodeSetPtr rns = robotUnit->getRtRobot()->getRobotNodeSet(cfg->nodeSetName);
+        useSynchronizedRtRobot();
+        VirtualRobot::RobotNodeSetPtr rns = rtGetRobot()->getRobotNodeSet(cfg->nodeSetName);
         ARMARX_CHECK_EXPRESSION_W_HINT(rns, cfg->nodeSetName);
 
         for (size_t i = 0; i < rns->getSize(); ++i)
         {
             std::string jointName = rns->getNode(i)->getName();
             jointNames.push_back(jointName);
-            ControlTargetBase* ct = prov->getControlTarget(jointName, ControlModes::Torque1DoF);
-            const SensorValueBase* sv = prov->getSensorValue(jointName);
+            ControlTargetBase* ct = useControlTarget(jointName, ControlModes::Torque1DoF);
+            const SensorValueBase* sv = useSensorValue(jointName);
             targets.push_back(ct->asA<ControlTarget1DoFActuatorTorque>());
             const SensorValue1DoFActuatorVelocity* velocitySensor = sv->asA<SensorValue1DoFActuatorVelocity>();
             const SensorValue1DoFActuatorPosition* positionSensor = sv->asA<SensorValue1DoFActuatorPosition>();
diff --git a/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.h b/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.h
index 843908dfe..1326dfacc 100644
--- a/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.h
+++ b/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.h
@@ -37,7 +37,7 @@ namespace armarx
     {
     public:
         using ConfigPtrT = NJointTaskSpaceImpedanceDMPControllerConfigPtr;
-        NJointTaskSpaceImpedanceDMPController(NJointControllerDescriptionProviderInterfacePtr prov, const NJointControllerConfigPtr& config, const VirtualRobot::RobotPtr&);
+        NJointTaskSpaceImpedanceDMPController(const RobotUnitPtr& robotUnit, const NJointControllerConfigPtr& config, const VirtualRobot::RobotPtr&);
 
         // NJointControllerInterface interface
         std::string getClassName(const Ice::Current&) const;
-- 
GitLab