From 3f7403318e2948aea468eb78efa328ad75ad2000 Mon Sep 17 00:00:00 2001 From: DevTekVE Date: Mon, 10 Jun 2024 07:47:20 +0200 Subject: [PATCH] Add LastSunnylinkPingTime to manager and update sunnylinkStatus calculation A new parameter "LastSunnylinkPingTime" has been introduced to the manager script, it will now be tracked and stored alongside other car status parameters. Additionally, unnecessary comments and includes have been removed in the sidebar script. The "sunnylinkStatus" calculation has also been updated to accommodate empty strings and prevent potential crashes. --- selfdrive/manager/manager.py | 1 + selfdrive/ui/qt/sidebar.cc | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/selfdrive/manager/manager.py b/selfdrive/manager/manager.py index ef8cd286a9..07bd5f5848 100755 --- a/selfdrive/manager/manager.py +++ b/selfdrive/manager/manager.py @@ -107,6 +107,7 @@ def manager_init() -> None: ("SunnylinkEnabled", "1"), ("CustomDrivingModel", "0"), ("DrivingModelGeneration", "4"), + ("LastSunnylinkPingTime", "0"), ] if not PC: default_params.append(("LastUpdateTime", datetime.datetime.utcnow().isoformat().encode('utf8'))) diff --git a/selfdrive/ui/qt/sidebar.cc b/selfdrive/ui/qt/sidebar.cc index b5198c2a17..5d8245acc5 100644 --- a/selfdrive/ui/qt/sidebar.cc +++ b/selfdrive/ui/qt/sidebar.cc @@ -3,7 +3,6 @@ #include #include -#include #include "selfdrive/ui/qt/util.h" #include "common/params.h" @@ -156,7 +155,8 @@ void Sidebar::updateState(const UIState &s) { setProperty("pandaStatus", QVariant::fromValue(pandaStatus)); ItemStatus sunnylinkStatus; - auto last_sunnylink_ping = std::stoull(params.get("LastSunnylinkPingTime")); + auto last_sunnylink_ping_str = params.get("LastSunnylinkPingTime"); + auto last_sunnylink_ping = std::stoull(last_sunnylink_ping_str.empty() ? "0" : last_sunnylink_ping_str); auto current_nanos = nanos_since_boot(); auto elapsed_sunnylink_ping = current_nanos - last_sunnylink_ping; auto sunnylink_enabled = params.getBool("SunnylinkEnabled"); @@ -169,7 +169,6 @@ void Sidebar::updateState(const UIState &s) { sunnylinkStatus = ItemStatus{{tr("SUNNYLINK"), tr("ONLINE")}, good_color}; } else { - //LOGE("Sunnylink is offline, last ping: [%ld]. Current time: [%ld], diff: [%ld]", last_sunnylink_ping, current_nanos, elapsed_sunnylink_ping); sunnylinkStatus = ItemStatus{{tr("SUNNYLINK"), tr("ERROR")}, danger_color}; } }