X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Futils%2Ftimer.hpp;h=b34fdf643f13b234660e7aba32995e8ec4c94403;hb=4e2d038c42d6995d69239455ec4fbad9931fcfd5;hp=a3cbecd61ba03c0d31f9c8409332b7903ae5f804;hpb=8871f8ae696035877afcbb3b089fc06219c2ba3a;p=apps%2Flow-level-can-service.git diff --git a/src/utils/timer.hpp b/src/utils/timer.hpp index a3cbecd..b34fdf6 100644 --- a/src/utils/timer.hpp +++ b/src/utils/timer.hpp @@ -17,14 +17,16 @@ #pragma once -#include - /* * @brief return epoch in milliseconds * * @return long long int epoch in milliseconds */ -typedef long long int (*TimeFunction)(); +typedef long long int (*time_function_t)(); + +long long int system_time_us(); +long long int system_time_ms(); +long long int system_time_s(); /** * @class frequency_clock_t @@ -43,8 +45,18 @@ class frequency_clock_t private: float frequency_; unsigned long last_tick_; - TimeFunction time_function_; + time_function_t time_function_; public: frequency_clock_t(); + frequency_clock_t(float frequency); + frequency_clock_t(float frequency, unsigned long last_tick, time_function_t time_function); + + float get_frequency() const; + static float frequency_to_period(float frequency); + bool started(); + time_function_t get_time_function(); + bool elapsed(bool stagger); + + void tick(); }; \ No newline at end of file