From dde3c20059937aa363d3721764c95c8bbf218d46 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Sun, 19 Feb 2023 14:07:01 +0100
Subject: [PATCH] virtual robot reader: warnings now on verbose level.

---
 .../client/common/RobotReader.cpp             | 47 ++++++++-----------
 .../client/common/RobotReader.h               |  5 +-
 .../client/common/VirtualRobotReader.cpp      | 15 +++---
 .../client/common/VirtualRobotReader.h        |  3 +-
 4 files changed, 29 insertions(+), 41 deletions(-)

diff --git a/source/RobotAPI/libraries/armem_robot_state/client/common/RobotReader.cpp b/source/RobotAPI/libraries/armem_robot_state/client/common/RobotReader.cpp
index 611fa0e0d..3374b9fe4 100644
--- a/source/RobotAPI/libraries/armem_robot_state/client/common/RobotReader.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/client/common/RobotReader.cpp
@@ -121,7 +121,7 @@ namespace armarx::armem::robot_state
                 const auto elapsedTime = armem::Time::Now() - tsStartFunctionInvokation;
                 if (elapsedTime > syncTimeout)
                 {
-                    ARMARX_WARNING << "Could not synchronize object " << obj.description.name;
+                    ARMARX_VERBOSE << "Could not synchronize object " << obj.description.name;
                     return false;
                 }
 
@@ -137,9 +137,7 @@ namespace armarx::armem::robot_state
     std::optional<robot::RobotDescription>
     RobotReader::queryDescription(
             const std::string& name,
-            const armem::Time& timestamp,
-            bool warnings
-            )
+            const armem::Time& timestamp)
     {
 
         const auto sanitizedTimestamp = timestamp.isValid() ? timestamp : Clock::Now();
@@ -159,11 +157,8 @@ namespace armarx::armem::robot_state
 
         if (not memoryReader)
         {
-            if (warnings)
-            {
-                ARMARX_WARNING << "Memory reader is null. Did you forget to call "
-                                  "RobotReader::connect() in onConnectComponent()?";
-            }
+            ARMARX_WARNING << "Memory reader is null. Did you forget to call "
+                                "RobotReader::connect() in onConnectComponent()?";
             return std::nullopt;
         }
 
@@ -182,10 +177,7 @@ namespace armarx::armem::robot_state
         }
         catch (...)
         {
-            if (warnings)
-            {
-                ARMARX_WARNING << "query description failure" << GetHandledExceptionString();
-            }
+            ARMARX_VERBOSE << "Query description failure" << GetHandledExceptionString();
         }
 
         return std::nullopt;
@@ -198,14 +190,14 @@ namespace armarx::armem::robot_state
         const auto jointMap = queryJointState(description, timestamp);
         if (not jointMap)
         {
-            ARMARX_WARNING << "Failed to query joint state for robot '" << description.name << "'.";
+            ARMARX_VERBOSE << "Failed to query joint state for robot '" << description.name << "'.";
             return std::nullopt;
         }
 
         const auto globalPose = queryGlobalPose(description, timestamp);
         if (not globalPose)
         {
-            ARMARX_WARNING << "Failed to query global pose for robot " << description.name;
+            ARMARX_VERBOSE << "Failed to query global pose for robot " << description.name;
             return std::nullopt;
         }
 
@@ -235,7 +227,7 @@ namespace armarx::armem::robot_state
         }
         catch (...)
         {
-            ARMARX_WARNING << GetHandledExceptionString();
+            ARMARX_VERBOSE << GetHandledExceptionString();
             return std::nullopt;
         }
     }
@@ -268,7 +260,7 @@ namespace armarx::armem::robot_state
 
             if (not qResult.success) /* c++20 [[unlikely]] */
             {
-                ARMARX_WARNING << qResult.errorMessage;
+                ARMARX_VERBOSE << qResult.errorMessage;
                 return std::nullopt;
             }
 
@@ -276,7 +268,7 @@ namespace armarx::armem::robot_state
         }
         catch (...)
         {
-            ARMARX_WARNING << deactivateSpam(1) << "Failed to query joint state. Reason: "
+            ARMARX_VERBOSE << deactivateSpam(1) << "Failed to query joint state. Reason: "
                            << GetHandledExceptionString();
             return std::nullopt;
         }
@@ -306,7 +298,7 @@ namespace armarx::armem::robot_state
 
         if (not qResult.success) /* c++20 [[unlikely]] */
         {
-            ARMARX_WARNING << qResult.errorMessage;
+            ARMARX_VERBOSE << qResult.errorMessage;
             return {};
         }
 
@@ -339,7 +331,7 @@ namespace armarx::armem::robot_state
 
         if (not qResult.success) /* c++20 [[unlikely]] */
         {
-            ARMARX_WARNING << qResult.errorMessage;
+            ARMARX_VERBOSE << qResult.errorMessage;
             return std::nullopt;
         }
 
@@ -362,7 +354,7 @@ namespace armarx::armem::robot_state
         }
         catch (...)
         {
-            ARMARX_WARNING << deactivateSpam(1) << "Failed to query global pose. Reason: "
+            ARMARX_VERBOSE << deactivateSpam(1) << "Failed to query global pose. Reason: "
                            << GetHandledExceptionString();
             return std::nullopt;
         }
@@ -381,7 +373,7 @@ namespace armarx::armem::robot_state
 
         if (providerSegment.empty())
         {
-            ARMARX_WARNING << "No entity found";
+            ARMARX_VERBOSE << "No entity found";
             return std::nullopt;
         }
 
@@ -394,9 +386,10 @@ namespace armarx::armem::robot_state
                 instance = &i;
                 return false; // break
             });
-        if (!instance)
+
+        if (instance == nullptr)
         {
-            ARMARX_WARNING << "No entity snapshots found";
+            ARMARX_VERBOSE << "No entity snapshots found";
             return std::nullopt;
         }
 
@@ -525,7 +518,7 @@ namespace armarx::armem::robot_state
 
         if (not qResult.success) /* c++20 [[unlikely]] */
         {
-            ARMARX_WARNING << qResult.errorMessage;
+            ARMARX_VERBOSE << qResult.errorMessage;
             return std::nullopt;
         }
 
@@ -558,7 +551,7 @@ namespace armarx::armem::robot_state
 
         if (not qResult.success) /* c++20 [[unlikely]] */
         {
-            ARMARX_WARNING << qResult.errorMessage;
+            ARMARX_VERBOSE << qResult.errorMessage;
             return std::nullopt;
         }
 
@@ -691,7 +684,7 @@ namespace armarx::armem::robot_state
                                         { instance = &i; });
         if (instance == nullptr)
         {
-            ARMARX_WARNING << "No entity snapshots found in provider segment `" << name << "`";
+            ARMARX_VERBOSE << "No entity snapshots found in provider segment `" << name << "`";
             return std::nullopt;
         }
 
diff --git a/source/RobotAPI/libraries/armem_robot_state/client/common/RobotReader.h b/source/RobotAPI/libraries/armem_robot_state/client/common/RobotReader.h
index bb63c7141..9474c5237 100644
--- a/source/RobotAPI/libraries/armem_robot_state/client/common/RobotReader.h
+++ b/source/RobotAPI/libraries/armem_robot_state/client/common/RobotReader.h
@@ -50,7 +50,7 @@ namespace armarx::armem::robot_state
 
         void registerPropertyDefinitions(::armarx::PropertyDefinitionsPtr& def);
 
-        bool synchronize(robot::Robot& obj, const armem::Time& timestamp) override;
+        [[nodiscard]] bool synchronize(robot::Robot& obj, const armem::Time& timestamp) override;
 
         std::optional<robot::Robot> get(const std::string& name,
                                         const armem::Time& timestamp) override;
@@ -58,8 +58,7 @@ namespace armarx::armem::robot_state
                          const armem::Time& timestamp) override;
 
         std::optional<robot::RobotDescription> queryDescription(const std::string& name,
-                                                                const armem::Time& timestamp,
-                                                                bool warnings = true);
+                                                                const armem::Time& timestamp);
 
         std::optional<robot::RobotState> queryState(const robot::RobotDescription& description,
                                                     const armem::Time& timestamp);
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 8c1f8dfb0..4f03377e9 100644
--- a/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp
@@ -47,7 +47,7 @@ namespace armarx::armem::robot_state
         const auto robotState = queryState(robotDescription, timestamp);
         if (not robotState)
         {
-            ARMARX_WARNING << "Querying robot state failed for robot `" << robot.getName() << "` "
+            ARMARX_VERBOSE << "Querying robot state failed for robot `" << robot.getName() << "` "
                            << "(type `"<< robot.getType() << "`)!";
             return false;
         }
@@ -61,19 +61,16 @@ namespace armarx::armem::robot_state
     VirtualRobot::RobotPtr
     VirtualRobotReader::getRobot(const std::string& name,
                                  const armem::Time& timestamp,
-                                 const VirtualRobot::RobotIO::RobotDescription& loadMode,
-                                 bool warnings)
+                                 const VirtualRobot::RobotIO::RobotDescription& loadMode)
     {
         ARMARX_INFO << deactivateSpam(60)
                     << "Querying robot description for robot '" << name << "'";
-        const auto description = queryDescription(name, timestamp, warnings);
+        const auto description = queryDescription(name, timestamp);
 
         if (not description)
         {
-            if (warnings)
-            {
-                ARMARX_WARNING << "The description of robot `" << name << "` is not a available!";
-            }
+            ARMARX_VERBOSE << "The description of robot `" << name << "` is not a available!";
+
             return nullptr;
         }
 
@@ -134,7 +131,7 @@ namespace armarx::armem::robot_state
             Clock::WaitFor(sleepAfterFailure);
         }
 
-        ARMARX_WARNING << "Failed to get synchronized robot `" << name << "`";
+        ARMARX_VERBOSE << "Failed to get synchronized robot `" << name << "`";
         return nullptr;
     }
 
diff --git a/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.h b/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.h
index d19e0483f..19a184e8c 100644
--- a/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.h
+++ b/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.h
@@ -53,8 +53,7 @@ namespace armarx::armem::robot_state
         getRobot(const std::string& name,
                  const armem::Time& timestamp = armem::Time::Invalid(),
                  const VirtualRobot::RobotIO::RobotDescription& loadMode =
-                     VirtualRobot::RobotIO::RobotDescription::eStructure,
-                 bool warnings = true);
+                     VirtualRobot::RobotIO::RobotDescription::eStructure);
 
         [[nodiscard]] VirtualRobot::RobotPtr
         getSynchronizedRobot(const std::string& name,
-- 
GitLab