diff --git a/source/armarx/navigation/client/services/MemorySubscriber.cpp b/source/armarx/navigation/client/services/MemorySubscriber.cpp index efb052ee4f9a01f8fce403b41ad019d13fa7cb84..89769e9f6887fb4177c5922fb9f8185fef4479bd 100644 --- a/source/armarx/navigation/client/services/MemorySubscriber.cpp +++ b/source/armarx/navigation/client/services/MemorySubscriber.cpp @@ -2,6 +2,7 @@ #include <mutex> #include <type_traits> +#include "ArmarXCore/core/exceptions/local/ExpressionException.h" #include <ArmarXCore/core/logging/Logging.h> #include <ArmarXCore/core/services/tasks/PeriodicTask.h> @@ -54,6 +55,7 @@ namespace armarx::navigation::client return; } + ARMARX_TRACE; handleEvents(qResult.memory); } @@ -64,7 +66,11 @@ namespace armarx::navigation::client static_assert(std::is_base_of<armarx::aron::codegenerator::cpp::AronGeneratedClass, AronEventT>::value); - const auto dto = AronEventT::FromAron(entity.data()); + // see events::Writer::storeImpl + const auto dataDict = aron::data::Dict::DynamicCastAndCheck(entity.data()->getElement("data")); + ARMARX_CHECK_NOT_NULL(dataDict); + const auto dto = AronEventT::FromAron(dataDict); + core::fromAron(dto, bo); return bo; }