tici: add wait_for_power helper (#29507)

* tici: add wait_for_power helper

* deque

* cleanup

---------

Co-authored-by: Bruce Wayne <batman@z840-provisioning2.internal>
This commit is contained in:
Adeeb Shihadeh
2023-08-21 13:46:00 -07:00
committed by GitHub
parent fc9a623d69
commit 985af1ce3c
+10
View File
@@ -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