X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Futils%2Ftimer.hpp;h=52b149373c01138f032a0a668a33060b882589bb;hb=fae627b646e9ab709adbd0c60d7582176375e0c3;hp=f565904482b263995093372e698d16e68bbfa4c0;hpb=a58d40b5ae336a54408201963b065ee049b43acd;p=apps%2Fagl-service-can-low-level.git diff --git a/low-can-binding/utils/timer.hpp b/low-can-binding/utils/timer.hpp index f5659044..52b14937 100644 --- a/low-can-binding/utils/timer.hpp +++ b/low-can-binding/utils/timer.hpp @@ -17,6 +17,9 @@ #pragma once +#include +#include + /// @brief return epoch in milliseconds /// /// @return long long int epoch in milliseconds @@ -34,20 +37,22 @@ class frequency_clock_t private: float unit_; ///< unit_ - multiplicator to make operation to be in the right unit (milli, micro, nano, etc) float frequency_; ///< the clock frequency in Hz. - unsigned long last_tick_; ///< the last time (in milliseconds since startup) that the clock ticked. + uint64_t last_tick_; ///< the last time (in microseconds since epoch) that the clock ticked. time_function_t time_function_; ///< a function returning current time public: frequency_clock_t(); - frequency_clock_t(float frequency); - frequency_clock_t(float frequency, unsigned long last_tick, time_function_t time_function); + explicit frequency_clock_t(float frequency); + frequency_clock_t(float frequency, uint64_t last_tick, time_function_t time_function); float get_frequency() const; + const struct timeval get_timeval_from_period() const; - float frequency_to_period(); + float frequency_to_period() const; bool started(); time_function_t get_time_function(); bool elapsed(bool stagger); - void tick(); + uint64_t get_last_tick() const; + void tick(uint64_t timestamp); }; \ No newline at end of file