From 45d4f8301be7f686c359fad00dc837066c325ca0 Mon Sep 17 00:00:00 2001 From: Willem Melching Date: Tue, 13 Jul 2021 16:22:22 +0200 Subject: [PATCH] hardware: only create dbus objects when needed (#21576) * only create dbus objects when needed * fix typo * use cached_property --- selfdrive/hardware/tici/hardware.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/selfdrive/hardware/tici/hardware.py b/selfdrive/hardware/tici/hardware.py index 86b87c28e9..f1be8ab360 100644 --- a/selfdrive/hardware/tici/hardware.py +++ b/selfdrive/hardware/tici/hardware.py @@ -1,4 +1,5 @@ import os +from functools import cached_property from enum import IntEnum import subprocess from pathlib import Path @@ -51,13 +52,20 @@ def write_amplifier_reg(reg, val, offset, mask): v = (v & (~mask)) | ((val << offset) & mask) bus.write_byte_data(AMP_ADDRESS, reg, v, force=True) + class Tici(HardwareBase): - def __init__(self): + @cached_property + def bus(self): import dbus # pylint: disable=import-error + return dbus.SystemBus() + + @cached_property + def nm(self): + return self.bus.get_object(NM, '/org/freedesktop/NetworkManager') - self.bus = dbus.SystemBus() - self.nm = self.bus.get_object(NM, '/org/freedesktop/NetworkManager') - self.mm = self.bus.get_object(MM, '/org/freedesktop/ModemManager1') + @cached_property + def mm(self): + return self.bus.get_object(MM, '/org/freedesktop/ModemManager1') def get_os_version(self): with open("/VERSION") as f: