From 16631cc12aa4a1bb246235f8d65de3523bf33f38 Mon Sep 17 00:00:00 2001 From: Fabian Reister <fabian.reister@kit.edu> Date: Sat, 26 Oct 2024 16:30:35 -0700 Subject: [PATCH] robot reader: reusing memory reader --- .../armem_robot_state/client/common/RobotReader.cpp | 6 +++++- .../armem_robot_state/client/localization/TransformReader.h | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) 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 1b4b0dd2e..d10045962 100644 --- a/source/RobotAPI/libraries/armem_robot_state/client/common/RobotReader.cpp +++ b/source/RobotAPI/libraries/armem_robot_state/client/common/RobotReader.cpp @@ -10,6 +10,7 @@ #include <ArmarXCore/core/exceptions/local/ExpressionException.h> #include <ArmarXCore/core/logging/Logging.h> #include <ArmarXCore/core/time/Clock.h> +#include <ArmarXCore/core/time/Duration.h> #include "RobotAPI/libraries/armem_robot_state/client/common/constants.h" #include "RobotAPI/libraries/armem_robot_state/common/localization/types.h" @@ -49,11 +50,14 @@ namespace armarx::armem::robot_state { transformReader.connect(memoryNameSystem); + armarx::Clock::WaitFor(armarx::Duration::MilliSeconds(200)); + // Wait for the memory to become available and add it as dependency. ARMARX_INFO << "RobotReader: Waiting for memory '" << constants::memoryName << "' ..."; try { - memoryReader = memoryNameSystem.useReader(constants::memoryName); + // memoryReader = memoryNameSystem.useReader(constants::memoryName); + memoryReader = transformReader.getMemoryReader(); ARMARX_INFO << "RobotReader: Connected to memory '" << constants::memoryName << "'"; } catch (const armem::error::CouldNotResolveMemoryServer& e) diff --git a/source/RobotAPI/libraries/armem_robot_state/client/localization/TransformReader.h b/source/RobotAPI/libraries/armem_robot_state/client/localization/TransformReader.h index 37dc53c5c..184fae248 100644 --- a/source/RobotAPI/libraries/armem_robot_state/client/localization/TransformReader.h +++ b/source/RobotAPI/libraries/armem_robot_state/client/localization/TransformReader.h @@ -58,6 +58,8 @@ namespace armarx::armem::robot_state::client::localization void registerPropertyDefinitions(::armarx::PropertyDefinitionsPtr& def) override; + armem::client::Reader getMemoryReader(){return memoryReader;} + private: armem::client::Reader memoryReader; mutable std::mutex memoryReaderMutex; -- GitLab