From bc7b437266e31eabb40e64cb568c57b4eb563b58 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Tue, 25 Oct 2022 02:46:07 +0800 Subject: [PATCH] cabana: stable FPS (#26120) * stable FPS * fix old-commit-hash: 686506f4003964e230550e100d6a841c2ff5d3ac --- tools/cabana/canmessages.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/cabana/canmessages.cc b/tools/cabana/canmessages.cc index d2141c3630..1b46bd9da7 100644 --- a/tools/cabana/canmessages.cc +++ b/tools/cabana/canmessages.cc @@ -87,7 +87,7 @@ void CANMessages::process(QHash> *messages) { } bool CANMessages::eventFilter(const Event *event) { - static double prev_update_sec = 0; + static double prev_update_ts = 0; // drop packets when the GUI thread is calling seekTo. to make sure the current_sec is accurate. if (!seeking && event->which == cereal::Event::Which::CAN) { if (!received_msgs) { @@ -121,8 +121,9 @@ bool CANMessages::eventFilter(const Event *event) { } } - if (current_sec < prev_update_sec || (current_sec - prev_update_sec) > 1.0 / settings.fps) { - prev_update_sec = current_sec; + double ts = millis_since_boot(); + if ((ts - prev_update_ts) > (1000.0 / settings.fps)) { + prev_update_ts = ts; // use pointer to avoid data copy in queued connection. emit received(received_msgs.release()); }