Test power usage for mapsd and navmodeld (#28378)

* Test power usage for mapsd and navmodeld

* Send LLK message from thread

* Use threading.Event
pull/28421/head
Mitchell Goff 2 years ago committed by GitHub
parent aa4bbcefd3
commit dd6f7116f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 20
      system/hardware/tici/tests/test_power_draw.py

@ -2,9 +2,11 @@
import unittest import unittest
import time import time
import math import math
import threading
from dataclasses import dataclass from dataclasses import dataclass
from tabulate import tabulate from tabulate import tabulate
import cereal.messaging as messaging
from system.hardware import HARDWARE, TICI from system.hardware import HARDWARE, TICI
from system.hardware.tici.power_monitor import get_power from system.hardware.tici.power_monitor import get_power
from selfdrive.manager.process_config import managed_processes from selfdrive.manager.process_config import managed_processes
@ -24,8 +26,22 @@ PROCS = [
Proc('modeld', 0.93, atol=0.2), Proc('modeld', 0.93, atol=0.2),
Proc('dmonitoringmodeld', 0.4), Proc('dmonitoringmodeld', 0.4),
Proc('encoderd', 0.23), Proc('encoderd', 0.23),
Proc('mapsd', 0.1),
Proc('navmodeld', 0.05),
] ]
def send_llk_msg(done):
pm = messaging.PubMaster(['liveLocationKalman'])
msg = messaging.new_message('liveLocationKalman')
msg.liveLocationKalman.positionGeodetic = {'value': [32.7174, -117.16277, 0], 'std': [0., 0., 0.], 'valid': True}
msg.liveLocationKalman.calibratedOrientationNED = {'value': [0., 0., 0.], 'std': [0., 0., 0.], 'valid': True}
msg.liveLocationKalman.status = 'valid'
# Send liveLocationKalman at 20hz
while not done.is_set():
pm.send('liveLocationKalman', msg)
time.sleep(1/20)
class TestPowerDraw(unittest.TestCase): class TestPowerDraw(unittest.TestCase):
@ -46,6 +62,9 @@ class TestPowerDraw(unittest.TestCase):
def test_camera_procs(self): def test_camera_procs(self):
baseline = get_power() baseline = get_power()
done = threading.Event()
thread = threading.Thread(target=send_llk_msg, args=(done,), daemon=True)
thread.start()
prev = baseline prev = baseline
used = {} used = {}
@ -57,6 +76,7 @@ class TestPowerDraw(unittest.TestCase):
used[proc.name] = now - prev used[proc.name] = now - prev
prev = now prev = now
done.set()
manager_cleanup() manager_cleanup()
tab = [] tab = []

Loading…
Cancel
Save