X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=CAN-binder%2Flow-can-binding%2Futils%2Ftimer.cpp;h=8c6215b025e958334fd01ad64ec8aaa202a0016c;hb=c59a57338a488cc451482f1180fe672e7d5c9179;hp=a35a3e9f13170eb67998d9e869be9cbefe7bd1c9;hpb=d170c9faeae2cf29c19f3523714ecdf58be73bed;p=apps%2Fagl-service-can-low-level.git diff --git a/CAN-binder/low-can-binding/utils/timer.cpp b/CAN-binder/low-can-binding/utils/timer.cpp index a35a3e9f..8c6215b0 100644 --- a/CAN-binder/low-can-binding/utils/timer.cpp +++ b/CAN-binder/low-can-binding/utils/timer.cpp @@ -17,6 +17,7 @@ #include #include +#include #include "timer.hpp" @@ -54,7 +55,6 @@ frequency_clock_t::frequency_clock_t() : unit_{1000000}, frequency_{10.0}, last_tick_{0}, time_function_{nullptr} {} - frequency_clock_t::frequency_clock_t(float frequency) : unit_{1000000}, frequency_{frequency}, last_tick_{0}, time_function_{nullptr} {} @@ -63,7 +63,17 @@ frequency_clock_t::frequency_clock_t(float frequency) /// @param[in] frequency - Frequency to convert, in hertz float frequency_clock_t::frequency_to_period() { - return 1 / frequency_ * unit_; + return frequency_ == 0 ? 0 : 1 / frequency_ * unit_; +} + +const struct timeval frequency_clock_t::get_timeval_from_period() const +{ + struct timeval freq = {0, 0}; + float f; + freq.tv_usec = (long int)std::modf(frequency_, &f); + freq.tv_sec = (time_t)f; + + return freq; } bool frequency_clock_t::started()