tici: add wait_for_power helper (#29507)

* tici: add wait_for_power helper

* deque

* cleanup

---------

Co-authored-by: Bruce Wayne <batman@z840-provisioning2.internal>
pull/29509/head
Adeeb Shihadeh 2 years ago committed by GitHub
parent fc9a623d69
commit 985af1ce3c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      system/hardware/tici/power_monitor.py

@ -4,6 +4,7 @@ import time
import datetime import datetime
import numpy as np import numpy as np
from typing import List from typing import List
from collections import deque
from openpilot.common.realtime import Ratekeeper from openpilot.common.realtime import Ratekeeper
from openpilot.common.filter_simple import FirstOrderFilter from openpilot.common.filter_simple import FirstOrderFilter
@ -27,6 +28,15 @@ def get_power(seconds=5):
pwrs = sample_power(seconds) pwrs = sample_power(seconds)
return np.mean(pwrs) 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__": if __name__ == "__main__":
duration = None duration = None

Loading…
Cancel
Save