From 9cc7cafcd1ac4f8f0b45c4457a1652700c5f7953 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Wed, 4 May 2022 18:22:32 +0200
Subject: [PATCH] using armarx::time

---
 source/armarx/navigation/core/events.h          |  7 +++----
 .../core/time/ChronoMonotonicTimeServer.cpp     | 17 +++--------------
 .../core/time/ChronoMonotonicTimeServer.h       |  2 +-
 .../navigation/core/time/TimeServerInterface.h  |  4 ++--
 source/armarx/navigation/core/types.h           |  3 ---
 .../memory/client/parameterization/Writer.cpp   | 11 +++--------
 .../MemoryParameterizationService.cpp           |  4 ++--
 .../MemoryParameterizationService.h             |  4 ++--
 8 files changed, 16 insertions(+), 36 deletions(-)

diff --git a/source/armarx/navigation/core/events.h b/source/armarx/navigation/core/events.h
index f50fa3bb..fd95336f 100644
--- a/source/armarx/navigation/core/events.h
+++ b/source/armarx/navigation/core/events.h
@@ -1,19 +1,18 @@
 #pragma once
 
 
-// STD/STL
 #include <string>
 
-// Navigation
-#include <armarx/navigation/core/types.h>
+#include <ArmarXCore/core/time/DateTime.h>
 
+#include <armarx/navigation/core/types.h>
 
 namespace armarx::navigation::core
 {
 
     struct Event
     {
-        core::TimestampUs timestamp;
+        armarx::core::time::DateTime timestamp;
     };
 
     struct GlobalPlanningFailedEvent : public Event
diff --git a/source/armarx/navigation/core/time/ChronoMonotonicTimeServer.cpp b/source/armarx/navigation/core/time/ChronoMonotonicTimeServer.cpp
index 4e619612..fb3db7cb 100644
--- a/source/armarx/navigation/core/time/ChronoMonotonicTimeServer.cpp
+++ b/source/armarx/navigation/core/time/ChronoMonotonicTimeServer.cpp
@@ -1,24 +1,13 @@
 #include "ChronoMonotonicTimeServer.h"
 
-#include <chrono>
-
-#include <ArmarXCore/core/logging/Logging.h>
+#include <ArmarXCore/core/time/Clock.h>
 
 namespace armarx::navigation::core
 {
-    TimestampUs
+    armarx::core::time::DateTime
     ChronoMonotonicTimeServer::now() const
     {
-        const auto tsNow = std::chrono::high_resolution_clock::now();
-        // const auto tsNow = std::chrono::steady_clock::now();
-        const auto tsSince = tsNow.time_since_epoch();
-        const auto dur = std::chrono::duration_cast<std::chrono::microseconds>(tsSince);
-
-        // ARMARX_INFO << "tsnow " << tsNow;
-        // ARMARX_INFO << "tsSince " << tsSince;
-        // ARMARX_INFO << "dur " << dur;
-
-        return dur;
+        return armarx::Clock::Now();
     }
 
 } // namespace armarx::navigation::core
diff --git a/source/armarx/navigation/core/time/ChronoMonotonicTimeServer.h b/source/armarx/navigation/core/time/ChronoMonotonicTimeServer.h
index 24bc5a12..31d6cf7e 100644
--- a/source/armarx/navigation/core/time/ChronoMonotonicTimeServer.h
+++ b/source/armarx/navigation/core/time/ChronoMonotonicTimeServer.h
@@ -31,7 +31,7 @@ namespace armarx::navigation::core
     class ChronoMonotonicTimeServer : virtual public TimeServerInterface
     {
     public:
-        TimestampUs now() const override;
+        armarx::core::time::DateTime now() const override;
 
         ~ChronoMonotonicTimeServer() override = default;
     };
diff --git a/source/armarx/navigation/core/time/TimeServerInterface.h b/source/armarx/navigation/core/time/TimeServerInterface.h
index f17665c8..fdb74e85 100644
--- a/source/armarx/navigation/core/time/TimeServerInterface.h
+++ b/source/armarx/navigation/core/time/TimeServerInterface.h
@@ -21,7 +21,7 @@
 
 #pragma once
 
-#include <armarx/navigation/core/types.h>
+#include "ArmarXCore/core/time/DateTime.h"
 
 namespace armarx::navigation::core
 {
@@ -29,7 +29,7 @@ namespace armarx::navigation::core
     class TimeServerInterface
     {
     public:
-        virtual TimestampUs now() const = 0;
+        virtual armarx::core::time::DateTime now() const = 0;
 
         virtual ~TimeServerInterface() = default;
     };
diff --git a/source/armarx/navigation/core/types.h b/source/armarx/navigation/core/types.h
index 0e5b96fa..a0529cb0 100644
--- a/source/armarx/navigation/core/types.h
+++ b/source/armarx/navigation/core/types.h
@@ -95,9 +95,6 @@ namespace armarx::navigation::core
         TimeServerInterface* timeServer;
     };
 
-    using TimestampUs = std::chrono::microseconds;
-
-
     struct PIDParams
     {
         float Kp{1.0};
diff --git a/source/armarx/navigation/memory/client/parameterization/Writer.cpp b/source/armarx/navigation/memory/client/parameterization/Writer.cpp
index 23a8d443..7becf03f 100644
--- a/source/armarx/navigation/memory/client/parameterization/Writer.cpp
+++ b/source/armarx/navigation/memory/client/parameterization/Writer.cpp
@@ -11,15 +11,10 @@ namespace armarx::navigation::memory::client::param
     bool
     Writer::store(const std::unordered_map<core::StackLayer, aron::data::DictPtr>& stack,
                   const std::string& clientID,
-                  const core::TimestampUs& timestamp)
+                  const armarx::core::time::DateTime& timestamp)
     {
         ARMARX_CHECK(not stack.empty());
 
-        const armem::Time ts(Duration::MicroSeconds(timestamp.count()));
-
-        ARMARX_INFO << "timestamp chrono " << timestamp;
-        ARMARX_INFO << "timestamp " << ts;
-
         armem::Commit commit;
 
         for (const auto& [layer, data] : stack)
@@ -32,8 +27,8 @@ namespace armarx::navigation::memory::client::param
                                   .withCoreSegmentName(properties().coreSegmentName)
                                   .withProviderSegmentName(clientID)
                                   .withEntityName(layerName)
-                                  .withTimestamp(ts);
-            update.timeCreated = ts;
+                                  .withTimestamp(timestamp);
+            update.timeCreated = timestamp;
             update.instancesData = {data};
             commit.add(update);
         }
diff --git a/source/armarx/navigation/server/parameterization/MemoryParameterizationService.cpp b/source/armarx/navigation/server/parameterization/MemoryParameterizationService.cpp
index b4334831..89be35bb 100644
--- a/source/armarx/navigation/server/parameterization/MemoryParameterizationService.cpp
+++ b/source/armarx/navigation/server/parameterization/MemoryParameterizationService.cpp
@@ -13,7 +13,7 @@ namespace armarx::navigation::server
     bool
     MemoryParameterizationService::store(const aron::data::DictPtr& params,
                                          const std::string& clientId,
-                                         const core::TimestampUs& timestamp)
+                                         const armarx::core::time::DateTime& timestamp)
     {
         ARMARX_CHECK_NOT_NULL(writer);
 
@@ -63,7 +63,7 @@ namespace armarx::navigation::server
     bool
     MemoryParameterizationService::store(const aron::data::dto::DictPtr& params,
                                          const std::string& clientId,
-                                         const core::TimestampUs& timestamp)
+                                         const armarx::core::time::DateTime& timestamp)
     {
         const auto dict = aron::data::Dict::FromAronDictDTO(params);
         return store(dict, clientId, timestamp);
diff --git a/source/armarx/navigation/server/parameterization/MemoryParameterizationService.h b/source/armarx/navigation/server/parameterization/MemoryParameterizationService.h
index 0eb1e0b7..ea81edee 100644
--- a/source/armarx/navigation/server/parameterization/MemoryParameterizationService.h
+++ b/source/armarx/navigation/server/parameterization/MemoryParameterizationService.h
@@ -41,11 +41,11 @@ namespace armarx::navigation::server
 
         bool store(const aron::data::DictPtr& params,
                    const std::string& clientId,
-                   const core::TimestampUs& timestamp);
+                   const armarx::core::time::DateTime& timestamp);
 
         bool store(const aron::data::dto::DictPtr& params,
                    const std::string& clientId,
-                   const core::TimestampUs& timestamp);
+                   const armarx::core::time::DateTime& timestamp);
 
 
     protected:
-- 
GitLab