diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-05-16 00:26:24 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-05-19 11:36:42 +0200 |
commit | c59a57338a488cc451482f1180fe672e7d5c9179 (patch) | |
tree | 3d1ffca26c1e824be79309a5fea829a785e110a3 /CAN-binder/low-can-binding | |
parent | efc7297476bfee786e6f69800552ca03e20d128d (diff) |
New function used to set timer in bcm_head msg.
As there will be more bcm socket and more need to set its timer values.
May be there is a better method to separate integer and decimal parts from
a float value.
Change-Id: I0cd992dfde5fe8257b17b5b610482f5f5e09aa8c
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'CAN-binder/low-can-binding')
-rw-r--r-- | CAN-binder/low-can-binding/utils/timer.cpp | 11 | ||||
-rw-r--r-- | CAN-binder/low-can-binding/utils/timer.hpp | 3 |
2 files changed, 14 insertions, 0 deletions
diff --git a/CAN-binder/low-can-binding/utils/timer.cpp b/CAN-binder/low-can-binding/utils/timer.cpp index 3bc96a3a..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 <time.h> #include <stdlib.h> +#include <cmath> #include "timer.hpp" @@ -65,6 +66,16 @@ float frequency_clock_t::frequency_to_period() 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() { return last_tick_ != 0; diff --git a/CAN-binder/low-can-binding/utils/timer.hpp b/CAN-binder/low-can-binding/utils/timer.hpp index f5659044..d3fedbdf 100644 --- a/CAN-binder/low-can-binding/utils/timer.hpp +++ b/CAN-binder/low-can-binding/utils/timer.hpp @@ -17,6 +17,8 @@ #pragma once +#include <sys/time.h> + /// @brief return epoch in milliseconds /// /// @return long long int epoch in milliseconds @@ -43,6 +45,7 @@ public: frequency_clock_t(float frequency, unsigned long last_tick, time_function_t time_function); float get_frequency() const; + const struct timeval get_timeval_from_period() const; float frequency_to_period(); bool started(); |