diff --git a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp index 5ed005e7a82c5c5eb24b056d0f5d71e10ebcf380..b7e4ba4cace8c494adfa53990de61f516e3e52e2 100644 --- a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp +++ b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp @@ -22,6 +22,8 @@ #include "ExampleMemoryClient.h" +#include <random> + #include <SimoxUtility/color/cmaps.h> #include <ArmarXCore/core/exceptions/local/ExpressionException.h> @@ -112,6 +114,8 @@ namespace armarx void ExampleMemoryClient::run() { ARMARX_IMPORTANT << "Running example."; + run_started = IceUtil::Time::now(); + std::srand(std::time(nullptr)); armem::MemoryID snapshotID = commitSingleSnapshot(entityID); if (true) @@ -161,10 +165,30 @@ namespace armarx armem::EntityUpdate update; update.entityID = entityID; update.timeCreated = armem::Time::now(); + + double diff = (update.timeCreated - run_started).toMilliSecondsDouble() / 1000; + + auto dict1 = std::make_shared<aron::datanavigator::DictNavigator>(); + auto dict2 = std::make_shared<aron::datanavigator::DictNavigator>(); + + auto sin = std::make_shared<aron::datanavigator::FloatNavigator>(std::sin(diff)); + auto cos = std::make_shared<aron::datanavigator::FloatNavigator>(std::cos(diff)); + + auto sqrt = std::make_shared<aron::datanavigator::DoubleNavigator>(std::sqrt(diff)); + auto lin = std::make_shared<aron::datanavigator::LongNavigator>((long)(diff * 1000)); + auto rand = std::make_shared<aron::datanavigator::IntNavigator>(std::rand()); + + dict1->addElement("sin", sin); + dict1->addElement("cos", cos); + + dict2->addElement("sqrt", sqrt); + dict2->addElement("lin", lin); + dict2->addElement("rand", rand); + update.instancesData = { - std::make_shared<aron::datanavigator::DictNavigator>(), - std::make_shared<aron::datanavigator::DictNavigator>() + dict1, + dict2 }; ARMARX_IMPORTANT << "Committing " << update; diff --git a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.h b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.h index e2e975c4a5450fa614cf0020b1e21a09fabbdb4f..774a4cbb84bc06496471e214d1cdb7935af1418f 100644 --- a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.h +++ b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.h @@ -114,6 +114,8 @@ namespace armarx private: + IceUtil::Time run_started; + armarx::RunningTask<ExampleMemoryClient>::pointer_type task; armarx::DebugObserverInterfacePrx debugObserver;