diff --git a/src/shared/diagnostic/CpuMeter/CpuMeter.cpp b/src/shared/diagnostic/CpuMeter/CpuMeter.cpp index 57990c49ff064d0d5ae08ddf6c703c0c1e87a2c9..76c813bccfcf2b95aa6e2704bd16a2b5449886d9 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 0aa1c4e5b527173dcb3a703ceff92b5a40548b35..b66d35c37e9d2ed40384a2f65efaa256709d4adf 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 c7998375a081783a35ca8044110ebff2b1e31e3e..ec1927195cb87d0f4860a2c65714be9ce2a9ee05 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 a1c1da5ea2458b600034e0a8356bfd2061dc9078..cc47316d31931a25bb227802dab4da8b923c67a3 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);