Fix: wrong calculation doesn't match method name.
authorRomain Forlot <romain.forlot@iot.bzh>
Tue, 16 May 2017 10:47:22 +0000 (12:47 +0200)
committerRomain Forlot <romain.forlot@iot.bzh>
Fri, 19 May 2017 09:36:43 +0000 (11:36 +0200)
Multiplication was a very specific needs for diagnostic manager when using
systemd event loop timer. Now it is the right period that is calculated and
multiplication is done into the right place. Cleaner.

Change-Id: Ie3dffe8daa0fa9bd9bde408e62a8d7a06a333a25
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
CAN-binder/low-can-binding/utils/timer.cpp

index 7edb0d5..5c659ca 100644 (file)
@@ -66,14 +66,14 @@ frequency_clock_t::frequency_clock_t(float frequency)
 /// @param[in] frequency - Frequency to convert, in hertz
 float frequency_clock_t::frequency_to_period()
 {
 /// @param[in] frequency - Frequency to convert, in hertz
 float frequency_clock_t::frequency_to_period()
 {
-       return frequency_ == 0 ? 0 : 1 / frequency_ * unit_;
+       return frequency_ == 0 ? 0 : 1 / frequency_;
 }
 
 const struct timeval frequency_clock_t::get_timeval_from_period() const
 {
        struct timeval freq = {0, 0};
        float f;
 }
 
 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_usec = (long int)(std::modf(frequency_to_period(), &f) * unit_);
        freq.tv_sec = (time_t)f;
 
        return freq;
        freq.tv_sec = (time_t)f;
 
        return freq;