diff --git a/system/hardware/tici/power_monitor.py b/system/hardware/tici/power_monitor.py index 0a5431939..ef3055ac4 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