From 56bddd9105796d0c37aa90c15b9bf9ff82db54d3 Mon Sep 17 00:00:00 2001 From: Willem Melching Date: Tue, 26 May 2020 13:41:02 -0700 Subject: [PATCH] Fix #1566, athena status flicker in sidebar old-commit-hash: 4de2c57bd104b18557a0364f7b3e08aa1df45827 --- selfdrive/ui/ui.cc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/selfdrive/ui/ui.cc b/selfdrive/ui/ui.cc index fa33e9cf6c..c4daf3591c 100644 --- a/selfdrive/ui/ui.cc +++ b/selfdrive/ui/ui.cc @@ -185,7 +185,7 @@ static void read_param_float_timeout(float* param, const char* param_name, int* static int read_param_uint64_timeout(uint64_t* dest, const char* param_name, int* timeout, bool persistent_param = false) { if (*timeout > 0){ (*timeout)--; - return 0; + return -1; } else { *timeout = 2 * UI_FREQ; // 0.5Hz return read_param_uint64(dest, param_name, persistent_param); @@ -976,12 +976,14 @@ int main(int argc, char* argv[]) { read_param_bool_timeout(&s->limit_set_speed, "LimitSetSpeed", &s->limit_set_speed_timeout); read_param_float_timeout(&s->speed_lim_off, "SpeedLimitOffset", &s->limit_set_speed_timeout); int param_read = read_param_uint64_timeout(&s->last_athena_ping, "LastAthenaPingTime", &s->last_athena_ping_timeout); - if (param_read != 0) { - s->scene.athenaStatus = NET_DISCONNECTED; - } else if (nanos_since_boot() - s->last_athena_ping < 70e9) { - s->scene.athenaStatus = NET_CONNECTED; - } else { - s->scene.athenaStatus = NET_ERROR; + if (param_read != -1) { // Param was updated this loop + if (param_read != 0) { // Failed to read param + s->scene.athenaStatus = NET_DISCONNECTED; + } else if (nanos_since_boot() - s->last_athena_ping < 70e9) { + s->scene.athenaStatus = NET_CONNECTED; + } else { + s->scene.athenaStatus = NET_ERROR; + } } update_offroad_layout_timeout(s, &s->offroad_layout_timeout);