diff --git a/selfdrive/hardware/base.py b/selfdrive/hardware/base.py index 9ed66bb3b1..6652ac57d5 100644 --- a/selfdrive/hardware/base.py +++ b/selfdrive/hardware/base.py @@ -117,3 +117,7 @@ class HardwareBase: @abstractmethod def get_gpu_usage_percent(self): pass + + @abstractmethod + def get_modem_version(self): + pass diff --git a/selfdrive/hardware/eon/hardware.py b/selfdrive/hardware/eon/hardware.py index 3f686b25af..76de35a724 100644 --- a/selfdrive/hardware/eon/hardware.py +++ b/selfdrive/hardware/eon/hardware.py @@ -385,3 +385,6 @@ class Android(HardwareBase): return min(max(perc, 0), 100) except Exception: return 0 + + def get_modem_version(self): + return None diff --git a/selfdrive/hardware/pc/hardware.py b/selfdrive/hardware/pc/hardware.py index 7a0f8ff088..0d3e4f168f 100644 --- a/selfdrive/hardware/pc/hardware.py +++ b/selfdrive/hardware/pc/hardware.py @@ -88,3 +88,6 @@ class Pc(HardwareBase): def get_gpu_usage_percent(self): return 0 + + def get_modem_version(self): + return None diff --git a/selfdrive/hardware/tici/hardware.py b/selfdrive/hardware/tici/hardware.py index 2d8b873c5a..86b87c28e9 100644 --- a/selfdrive/hardware/tici/hardware.py +++ b/selfdrive/hardware/tici/hardware.py @@ -213,6 +213,13 @@ class Tici(HardwareBase): return network_strength + def get_modem_version(self): + try: + modem = self.get_modem() + return modem.Get(MM_MODEM, 'Revision', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + except Exception: + return None + # We don't have a battery, so let's use some sane constants def get_battery_capacity(self): return 100 diff --git a/selfdrive/thermald/thermald.py b/selfdrive/thermald/thermald.py index b21197055e..8092585e22 100755 --- a/selfdrive/thermald/thermald.py +++ b/selfdrive/thermald/thermald.py @@ -156,6 +156,7 @@ def thermald_thread(): network_type = NetworkType.none network_strength = NetworkStrength.unknown network_info = None + modem_version = None registered_count = 0 current_filter = FirstOrderFilter(0., CURRENT_TAU, DT_TRML) @@ -237,6 +238,12 @@ def thermald_thread(): network_strength = HARDWARE.get_network_strength(network_type) network_info = HARDWARE.get_network_info() # pylint: disable=assignment-from-none + # Log modem version once + if modem_version is None: + modem_version = HARDWARE.get_modem_version() # pylint: disable=assignment-from-none + if modem_version is not None: + cloudlog.warning(f"Modem version: {modem_version}") + if TICI and (network_info.get('state', None) == "REGISTERED"): registered_count += 1 else: