From 50371637dc9216f45e0cd535c118f117d1a5c5b3 Mon Sep 17 00:00:00 2001 From: Maxime Desroches Date: Sun, 27 Jul 2025 21:29:11 -0700 Subject: [PATCH] Reapply "Save onroad/offroad uptime to param (#35769)" (#35796) This reverts commit 87270952c491aa80743f88f57e9e73e4657fcf95. --- common/params_keys.h | 2 ++ system/hardware/hardwared.py | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/common/params_keys.h b/common/params_keys.h index 7ccf5794ad..15e6534ea0 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -123,5 +123,7 @@ inline static std::unordered_map keys = { {"UpdaterState", {CLEAR_ON_MANAGER_START, STRING}}, {"UpdaterTargetBranch", {CLEAR_ON_MANAGER_START, STRING}}, {"UpdaterLastFetchTime", {PERSISTENT, TIME}}, + {"UptimeOffroad", {PERSISTENT, FLOAT, "0.0"}}, + {"UptimeOnroad", {PERSISTENT, FLOAT, "0.0"}}, {"Version", {PERSISTENT, STRING}}, }; diff --git a/system/hardware/hardwared.py b/system/hardware/hardwared.py index 2456eb919c..fad93601da 100755 --- a/system/hardware/hardwared.py +++ b/system/hardware/hardwared.py @@ -201,6 +201,10 @@ def hardware_thread(end_event, hw_queue) -> None: params = Params() power_monitor = PowerMonitoring() + uptime_offroad: float = params.get("UptimeOffroad", return_default=True) + uptime_onroad: float = params.get("UptimeOnroad", return_default=True) + last_uptime_ts: float = time.monotonic() + HARDWARE.initialize_hardware() thermal_config = HARDWARE.get_thermal_config() @@ -445,6 +449,17 @@ def hardware_thread(end_event, hw_queue) -> None: params.put_bool_nonblocking("NetworkMetered", msg.deviceState.networkMetered) + now_ts = time.monotonic() + if off_ts: + uptime_offroad += now_ts - max(last_uptime_ts, off_ts) + elif started_ts: + uptime_onroad += now_ts - max(last_uptime_ts, started_ts) + last_uptime_ts = now_ts + + if (count % int(60. / DT_HW)) == 0: + params.put("UptimeOffroad", uptime_offroad) + params.put("UptimeOnroad", uptime_onroad) + count += 1 should_start_prev = should_start