Fix #1566, athena status flicker in sidebar

old-commit-hash: 4de2c57bd1
commatwo_master
Willem Melching 5 years ago
parent 91f1082394
commit 56bddd9105
  1. 16
      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) { static int read_param_uint64_timeout(uint64_t* dest, const char* param_name, int* timeout, bool persistent_param = false) {
if (*timeout > 0){ if (*timeout > 0){
(*timeout)--; (*timeout)--;
return 0; return -1;
} else { } else {
*timeout = 2 * UI_FREQ; // 0.5Hz *timeout = 2 * UI_FREQ; // 0.5Hz
return read_param_uint64(dest, param_name, persistent_param); 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_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); 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); int param_read = read_param_uint64_timeout(&s->last_athena_ping, "LastAthenaPingTime", &s->last_athena_ping_timeout);
if (param_read != 0) { if (param_read != -1) { // Param was updated this loop
s->scene.athenaStatus = NET_DISCONNECTED; if (param_read != 0) { // Failed to read param
} else if (nanos_since_boot() - s->last_athena_ping < 70e9) { s->scene.athenaStatus = NET_DISCONNECTED;
s->scene.athenaStatus = NET_CONNECTED; } else if (nanos_since_boot() - s->last_athena_ping < 70e9) {
} else { s->scene.athenaStatus = NET_CONNECTED;
s->scene.athenaStatus = NET_ERROR; } else {
s->scene.athenaStatus = NET_ERROR;
}
} }
update_offroad_layout_timeout(s, &s->offroad_layout_timeout); update_offroad_layout_timeout(s, &s->offroad_layout_timeout);

Loading…
Cancel
Save