From 593d6339729edf28073b235016093aeec680fb42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niccol=C3=B2=20Betto?= <niccolo.betto@skywarder.eu>
Date: Fri, 1 Dec 2023 17:05:19 +0100
Subject: [PATCH] [Logger] Update to Miosix 2.7 API

---
 src/shared/diagnostic/CpuMeter/CpuMeter.cpp |  6 +++---
 src/shared/diagnostic/PrintLogger.cpp       |  2 +-
 src/shared/diagnostic/StackLogger.h         |  2 +-
 src/shared/logger/Logger.cpp                | 10 ++++++----
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/shared/diagnostic/CpuMeter/CpuMeter.cpp b/src/shared/diagnostic/CpuMeter/CpuMeter.cpp
index 57990c49f..76c813bcc 100644
--- a/src/shared/diagnostic/CpuMeter/CpuMeter.cpp
+++ b/src/shared/diagnostic/CpuMeter/CpuMeter.cpp
@@ -60,12 +60,12 @@ static void cpuMeterThread(void*)
 {
     for (;;)
     {
-        long long t1 = getTick();
+        long long t1 = getTime();
         delayMs(period);
-        long long t2 = getTick();
+        long long t2 = getTime();
 
         update++;
-        float delta = t2 - t1;
+        float delta = (t2 - t1) / 1e6f;  // delta in milliseconds
         {
             Lock<FastMutex> l(utilizationMutex);
             utilization.add(100.f * (1.f - static_cast<float>(period) / delta));
diff --git a/src/shared/diagnostic/PrintLogger.cpp b/src/shared/diagnostic/PrintLogger.cpp
index 0aa1c4e5b..b66d35c37 100644
--- a/src/shared/diagnostic/PrintLogger.cpp
+++ b/src/shared/diagnostic/PrintLogger.cpp
@@ -51,7 +51,7 @@ void LogSink::log(const LogRecord& record)
     using namespace fmt::literals;
     if (record.level >= minimumLevel)
     {
-        float ts     = miosix::getTick() / 1000.0f;
+        float ts     = miosix::getTime() / (float)Constants::NS_IN_S;
         int min      = ts / 60;
         string tsStr = fmt::format("{:02d}:{:06.3f}", min, (ts - min * 60));
 
diff --git a/src/shared/diagnostic/StackLogger.h b/src/shared/diagnostic/StackLogger.h
index c7998375a..ec1927195 100644
--- a/src/shared/diagnostic/StackLogger.h
+++ b/src/shared/diagnostic/StackLogger.h
@@ -54,7 +54,7 @@ public:
     void updateStack(uint8_t threadId)
     {
         StackData d;
-        d.timestamp    = miosix::getTick();
+        d.timestamp    = miosix::getTime();
         d.threadId     = threadId;
         d.minimumStack = miosix::MemoryProfiling::getAbsoluteFreeStack();
 
diff --git a/src/shared/logger/Logger.cpp b/src/shared/logger/Logger.cpp
index a1c1da5ea..cc47316d3 100644
--- a/src/shared/logger/Logger.cpp
+++ b/src/shared/logger/Logger.cpp
@@ -33,10 +33,12 @@
 #include <tscpp/buffer.h>
 #include <utils/Debug.h>
 
+#include <chrono>
 #include <fstream>
 #include <stdexcept>
 
 using namespace std;
+using namespace std::chrono;
 using namespace miosix;
 
 namespace Boardcore
@@ -287,8 +289,7 @@ void Logger::writeThread()
                 return;
 
             // Write data to disk
-            Timer timer;
-            timer.start();
+            auto start = system_clock::now();
 
             size_t result = fwrite(buffer->data, 1, buffer->size, file);
             if (result != buffer->size)
@@ -301,8 +302,9 @@ void Logger::writeThread()
             else
                 stats.buffersWritten++;
 
-            timer.stop();
-            stats.averageWriteTime = timer.interval();
+            stats.averageWriteTime =
+                duration_cast<milliseconds>(system_clock::now() - start)
+                    .count();
             stats.maxWriteTime =
                 max(stats.maxWriteTime, stats.averageWriteTime);
 
-- 
GitLab