From 0911a1888acef208a29803db8706b13050a7865b Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Wed, 8 Jun 2022 09:36:44 +0200
Subject: [PATCH] VirtualRobotReader: better warnings

---
 .../VirtualRobotReaderExampleClient.cpp                  | 2 +-
 .../client/common/VirtualRobotReader.cpp                 | 9 ++++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/source/RobotAPI/components/armem/client/VirtualRobotReaderExampleClient/VirtualRobotReaderExampleClient.cpp b/source/RobotAPI/components/armem/client/VirtualRobotReaderExampleClient/VirtualRobotReaderExampleClient.cpp
index 639203e46..6aab4a4ff 100644
--- a/source/RobotAPI/components/armem/client/VirtualRobotReaderExampleClient/VirtualRobotReaderExampleClient.cpp
+++ b/source/RobotAPI/components/armem/client/VirtualRobotReaderExampleClient/VirtualRobotReaderExampleClient.cpp
@@ -95,7 +95,7 @@ namespace armarx::robot_state
         ARMARX_INFO << deactivateSpam(10) << "Synchronizing robot";
 
         TIMING_START(synchronizeRobot);
-        virtualRobotReader.synchronizeRobot(*virtualRobot, now);
+        ARMARX_CHECK(virtualRobotReader.synchronizeRobot(*virtualRobot, now));
         TIMING_END_STREAM(synchronizeRobot, ARMARX_INFO);
     }
 
diff --git a/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp b/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp
index 6eeb7e2e9..58f56a4d7 100644
--- a/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp
@@ -68,6 +68,7 @@ namespace armarx::armem::robot_state
 
         if (not description)
         {
+            ARMARX_WARNING << "The description of robot `" << name << "` is nota available!";
             return nullptr;
         }
 
@@ -79,7 +80,13 @@ namespace armarx::armem::robot_state
         auto robot = VirtualRobot::RobotIO::loadRobot(xmlFilename, loadMode);
         robot->setName(name);
 
-        synchronizeRobot(*robot, timestamp);
+        const bool success = synchronizeRobot(*robot, timestamp);
+
+        if(not success)
+        {
+            ARMARX_WARNING << "Could not synchronize robot `" << name << "` with the memory!";
+            return nullptr;
+        }
 
         return robot;
     }
-- 
GitLab