diff --git a/echrono/Clock.cpp b/echrono/Clock.cpp index 9edb53a..860c6d3 100644 --- a/echrono/Clock.cpp +++ b/echrono/Clock.cpp @@ -11,6 +11,9 @@ #include #include +#include +ETK_DECLARE_TYPE(echrono::Clock); + echrono::Clock::Clock() : m_data(0) { @@ -26,6 +29,11 @@ echrono::Clock::Clock(int64_t _valSec, int32_t _valNano) : } +echrono::Clock::Clock(const echrono::Clock& _val): + m_data(_val.m_data) { + +} + echrono::Clock::Clock(const echrono::Steady& _val) { m_data = _val.get(); } diff --git a/echrono/Clock.hpp b/echrono/Clock.hpp index 2e13909..08dc0d0 100644 --- a/echrono/Clock.hpp +++ b/echrono/Clock.hpp @@ -16,7 +16,7 @@ namespace echrono { */ class Clock { private: - int64_t m_data; + int64_t m_data; // stored in ns public: Clock(); //Clock(const echrono::Duration& _val) {}; //value in second diff --git a/echrono/Duration.cpp b/echrono/Duration.cpp index abe02b7..6171e26 100644 --- a/echrono/Duration.cpp +++ b/echrono/Duration.cpp @@ -10,6 +10,9 @@ #include #include +#include +ETK_DECLARE_TYPE(echrono::Duration); + echrono::Duration::Duration() : m_data(0) { diff --git a/echrono/Duration.hpp b/echrono/Duration.hpp index d0247ba..fd27a27 100644 --- a/echrono/Duration.hpp +++ b/echrono/Duration.hpp @@ -31,7 +31,7 @@ namespace echrono { class Duration { private: - int64_t m_data; + int64_t m_data; // stored in ns public: Duration(); Duration(int _val); //value in nanosecond diff --git a/echrono/Steady.cpp b/echrono/Steady.cpp index 9ac60cd..1b57cfa 100644 --- a/echrono/Steady.cpp +++ b/echrono/Steady.cpp @@ -10,12 +10,14 @@ #include #include #include +#include +ETK_DECLARE_TYPE(echrono::Steady); static int64_t getTime() { #if defined(__TARGET_OS__Android) struct timevalnow; gettimeofday(&now, nullptr); - return int64_t(now.tv_sec)*1000000LL + int64_t(now.tv_usec); + return int64_t(now.tv_sec)*1000000000LL + int64_t(now.tv_usec)*1000LL; #elif defined(__TARGET_OS__Web) \ || defined(__TARGET_OS__Linux) \ || defined(__TARGET_OS__buildroot) \ @@ -32,7 +34,7 @@ static int64_t getTime() { now.tv_sec = time(nullptr); now.tv_nsec = 0; } - return int64_t(now.tv_sec)*1000000LL + int64_t(now.tv_nsec)/1000LL; + return int64_t(now.tv_sec)*1000000000LL + int64_t(now.tv_nsec); #else #error must be implemented ... #endif diff --git a/echrono/Steady.hpp b/echrono/Steady.hpp index fcb7ba1..a9b449f 100644 --- a/echrono/Steady.hpp +++ b/echrono/Steady.hpp @@ -15,7 +15,7 @@ namespace echrono { */ class Steady { private: - uint64_t m_data; //!< Monotonic clock since computer star + uint64_t m_data; //!< Monotonic clock since computer star (ns) public: Steady(); //Steady(const echrono::Duration& _val) {}; //value in second diff --git a/echrono/Time.cpp b/echrono/Time.cpp index 371e39f..dacc6bc 100644 --- a/echrono/Time.cpp +++ b/echrono/Time.cpp @@ -13,12 +13,14 @@ extern "C" { #include } +#include +ETK_DECLARE_TYPE(echrono::Time); static int64_t getTime() { #if defined(__TARGET_OS__Android) struct timevalnow; gettimeofday(&now, nullptr); - return int64_t(now.tv_sec)*1000000LL + int64_t(now.tv_usec); + return int64_t(now.tv_sec)*1000000000LL + int64_t(now.tv_usec)*1000LL; #elif defined(__TARGET_OS__Web) \ || defined(__TARGET_OS__Linux) \ || defined(__TARGET_OS__buildroot) \ @@ -31,7 +33,7 @@ static int64_t getTime() { now.tv_sec = time(nullptr); now.tv_nsec = 0; } - return int64_t(now.tv_sec)*1000000LL + int64_t(now.tv_nsec)/1000LL; + return int64_t(now.tv_sec)*1000000000LL + int64_t(now.tv_nsec); #else #error must be implemented ... #endif diff --git a/echrono/Time.hpp b/echrono/Time.hpp index e7593f0..ff5ab64 100644 --- a/echrono/Time.hpp +++ b/echrono/Time.hpp @@ -15,7 +15,7 @@ namespace echrono { */ class Time { private: - uint64_t m_data; //!< earth time since Epock + uint64_t m_data; //!< earth time since Epock in ns public: Time(); //Time(const echrono::Duration& _val) {}; //value in second