diff --git a/tools/cabana/streams/abstractstream.cc b/tools/cabana/streams/abstractstream.cc index 08acba9dd8..7abeafea94 100644 --- a/tools/cabana/streams/abstractstream.cc +++ b/tools/cabana/streams/abstractstream.cc @@ -1,5 +1,6 @@ #include "tools/cabana/streams/abstractstream.h" +#include #include #include @@ -228,11 +229,10 @@ double calc_freq(const MessageId &msg_id, double current_sec) { auto last = std::upper_bound(first, events.end(), current_mono_time, CompareCanEvent()); int count = std::distance(first, last); - if (count > 1) { - double duration = ((*std::prev(last))->mono_time - (*first)->mono_time) / 1e9; - return count / duration; - } - return 0; + if (count <= 1) return 0.0; + + double duration = ((*std::prev(last))->mono_time - (*first)->mono_time) / 1e9; + return duration > std::numeric_limits::epsilon() ? (count - 1) / duration : 0.0; } } // namespace