From a160e521dccda8608c5a6e90ae83d57efe72d13e Mon Sep 17 00:00:00 2001
From: Raphael Grimm <raphael.grimm@kit.edu>
Date: Thu, 4 Jun 2020 08:56:08 +0200
Subject: [PATCH] Use RobotStateComponentPlugin

---
 ...esianWaypointControlGuiWidgetController.cpp | 18 ++++++------------
 ...rtesianWaypointControlGuiWidgetController.h |  6 +++---
 2 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
index 45f540062..5348bcaaa 100644
--- a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
@@ -58,33 +58,27 @@ namespace armarx
     void CartesianWaypointControlGuiWidgetController::loadSettings(QSettings* settings)
     {
         std::lock_guard g{_allMutex};
-        _robotStateComponentName = settings->value("rsc", "Armar6StateComponent").toString().toStdString();
+        getRobotStateComponentPlugin().setRobotStateComponentName(settings->value("rsc", "Armar6StateComponent").toString().toStdString());
         getRobotUnitComponentPlugin().setRobotUnitName(settings->value("ru", "Armar6Unit").toString().toStdString());
     }
 
     void CartesianWaypointControlGuiWidgetController::saveSettings(QSettings* settings)
     {
         std::lock_guard g{_allMutex};
-        settings->setValue("rsc", QString::fromStdString(_robotStateComponentName));
+        settings->setValue("rsc", QString::fromStdString(getRobotStateComponentPlugin().getRobotStateComponentName()));
         settings->setValue("ru", QString::fromStdString(getRobotUnitComponentPlugin().getRobotUnitName()));
     }
 
     void CartesianWaypointControlGuiWidgetController::onInitComponent()
     {
-        std::lock_guard g{_allMutex};
-        usingProxy(_robotStateComponentName);
     }
 
     void CartesianWaypointControlGuiWidgetController::onConnectComponent()
     {
         std::lock_guard g{_allMutex};
-        //proxies
-        {
-            _robotStateComponent = getProxy<RobotStateComponentInterfacePrx>(_robotStateComponentName);
-        }
         //robot
         {
-            _robot = RemoteRobot::createLocalCloneFromFile(_robotStateComponent, VirtualRobot::RobotIO::eStructure);
+            _robot = addRobot("state robot", VirtualRobot::RobotIO::eStructure);
         }
         //fill rns combo box
         {
@@ -197,7 +191,7 @@ namespace armarx
     void CartesianWaypointControlGuiWidgetController::configured()
     {
         std::lock_guard g{_allMutex};
-        _robotStateComponentName = _dialog->getProxyName("rsc");
+        getRobotStateComponentPlugin().setRobotStateComponentName(_dialog->getProxyName("rsc"));
         getRobotUnitComponentPlugin().setRobotUnitName(_dialog->getProxyName("ru"));
     }
 
@@ -281,11 +275,11 @@ namespace armarx
     void CartesianWaypointControlGuiWidgetController::timerEvent(QTimerEvent*)
     {
         std::lock_guard g{_allMutex};
-        if (!_robot || !_robotStateComponent)
+        if (!_robot)
         {
             return;
         }
-        RemoteRobot::synchronizeLocalClone(_robot, _robotStateComponent);
+        synchronizeLocalClone(_robot);
         if (_controller)
         {
             ARMARX_INFO << deactivateSpam() << "setting visu gp to:\n" << _robot->getGlobalPose();
diff --git a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.h b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.h
index 338c46f93..fc6b1936d 100644
--- a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.h
+++ b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.h
@@ -35,6 +35,7 @@
 #include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h>
 #include <RobotAPI/interface/units/RobotUnit/NJointCartesianWaypointController.h>
 #include <RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.h>
+#include <RobotAPI/libraries/RobotAPIComponentPlugins/RobotStateComponentPlugin.h>
 
 #include <RobotAPI/gui-plugins/CartesianWaypointControlGui/ui_CartesianWaypointControlGuiWidget.h>
 
@@ -61,7 +62,8 @@ namespace armarx
     class ARMARXCOMPONENT_IMPORT_EXPORT
         CartesianWaypointControlGuiWidgetController:
         public armarx::ArmarXComponentWidgetControllerTemplate < CartesianWaypointControlGuiWidgetController >,
-        public virtual RobotUnitComponentPluginUser
+        public virtual RobotUnitComponentPluginUser,
+        public virtual RobotStateComponentPluginUser
     {
         Q_OBJECT
 
@@ -107,8 +109,6 @@ namespace armarx
         void timerEvent(QTimerEvent*) override;
 
     private:
-        std::string                                     _robotStateComponentName;
-        RobotStateComponentInterfacePrx                 _robotStateComponent;
         Ui::CartesianWaypointControlGuiWidget           _ui;
         QPointer<SimpleConfigDialog>                    _dialog;
         NJointCartesianWaypointControllerInterfacePrx   _controller;
-- 
GitLab