From 1be35e350ccbd12a14f6f8f68192b046e997fc33 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Mon, 16 Aug 2021 18:15:20 +0200
Subject: [PATCH] Fix robot unit data conversion

---
 .../proprioception/converters/Armar6Converter.cpp     | 11 +++++++----
 .../proprioception/converters/Armar6Converter.h       |  2 +-
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp
index 6c7171a74..cb1192954 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp
@@ -6,6 +6,8 @@
 #include <RobotAPI/libraries/RobotUnitDataStreamingReceiver/RobotUnitDataStreamingReceiver.h>
 #include <RobotAPI/libraries/aron/core/navigator/data/container/Dict.h>
 
+#include <RobotAPI/libraries/armem_robot_state/server/proprioception/aron_conversions.h>
+
 #include "ConverterTools.h"
 
 
@@ -40,7 +42,7 @@ namespace armarx::armem::server::robot_state::proprioception
 
 
     void Armar6Converter::process(
-        arondto::Proprioception dto,
+        arondto::Proprioception& dto,
         const std::string& entryName,
         const ConverterValue& value)
     {
@@ -70,8 +72,7 @@ namespace armarx::armem::server::robot_state::proprioception
         {
             // Joint
             bool processed = processJointEntry(dto.joints, split, value);
-
-            if (!processed)
+            if (not processed)
             {
                 // Fallback: Put in extra.
                 const std::vector<std::string> comps{simox::alg::advanced(split.begin(), 1), split.end()};
@@ -86,6 +87,8 @@ namespace armarx::armem::server::robot_state::proprioception
                         dto.extraLongs[key] = getValueAs<long>(value);
                         break;
                     default:
+                        ARMARX_DEBUG << "Cannot handle extra field '" << key << "' of type "
+                                     << RobotUnitDataStreaming::DataEntryNames.to_name(value.entry.type);
                         break;
                 }
             }
@@ -201,7 +204,7 @@ namespace armarx::armem::server::robot_state::proprioception
         }
         else
         {
-            ARMARX_DEBUG << "Ignoring unhandled field: '" << simox::alg::join(split, ".") << "'";
+            // ARMARX_DEBUG << "Ignoring unhandled field: '" << simox::alg::join(split, ".") << "'";
             return false;
         }
     }
diff --git a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.h b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.h
index f7a0da8f3..03c0a05d0 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.h
+++ b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.h
@@ -33,7 +33,7 @@ namespace armarx::armem::server::robot_state::proprioception
 
     protected:
 
-        void process(arondto::Proprioception dto, const std::string& entryName, const ConverterValue& value);
+        void process(arondto::Proprioception& dto, const std::string& entryName, const ConverterValue& value);
 
 
 
-- 
GitLab