From 985af1ce3cc9849c0c677d2f1a062daef1b8d0dc Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Mon, 21 Aug 2023 13:46:00 -0700 Subject: [PATCH] tici: add wait_for_power helper (#29507) * tici: add wait_for_power helper * deque * cleanup --------- Co-authored-by: Bruce Wayne --- system/hardware/tici/power_monitor.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/system/hardware/tici/power_monitor.py b/system/hardware/tici/power_monitor.py index 0a54319398..ef3055ac47 100755 --- a/system/hardware/tici/power_monitor.py +++ b/system/hardware/tici/power_monitor.py @@ -4,6 +4,7 @@ import time import datetime import numpy as np from typing import List +from collections import deque from openpilot.common.realtime import Ratekeeper from openpilot.common.filter_simple import FirstOrderFilter @@ -27,6 +28,15 @@ def get_power(seconds=5): pwrs = sample_power(seconds) return np.mean(pwrs) +def wait_for_power(min_pwr, max_pwr, min_secs_in_range, timeout): + start_time = time.monotonic() + pwrs = deque([min_pwr - 1.]*min_secs_in_range, maxlen=min_secs_in_range) + while (time.monotonic() - start_time < timeout): + pwrs.append(get_power(1)) + if all(min_pwr <= p <= max_pwr for p in pwrs): + break + return np.mean(pwrs) + if __name__ == "__main__": duration = None