From 9ff1fb48de53ab2889ac349c182cf77196139e4b Mon Sep 17 00:00:00 2001 From: Willem Melching Date: Tue, 16 Jun 2020 12:49:38 -0700 Subject: [PATCH] add wrong neos version alert (#1725) --- cereal/car.capnp | 4 ++++ selfdrive/controls/controlsd.py | 5 +++++ selfdrive/controls/lib/events.py | 10 ++++++++++ 3 files changed, 19 insertions(+) diff --git a/cereal/car.capnp b/cereal/car.capnp index 05c2dd6d295592..6d7133198e7f1c 100644 --- a/cereal/car.capnp +++ b/cereal/car.capnp @@ -107,6 +107,10 @@ struct CarEvent @0x9b1657f34caf3ad3 { startupWhitePanda @82; canErrorPersistent @83; belowEngageSpeed @84; + noGps @85; + focusRecoverActive @86; + wrongCruiseMode @87; + neosUpdateRequired @88; } } diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index 55cfe1bf1e1cd3..168ef7e4f37f10 100755 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import os import gc +import subprocess from cereal import car, log from common.numpy_fast import clip from common.realtime import sec_since_boot, set_realtime_priority, Ratekeeper, DT_CTRL @@ -142,6 +143,10 @@ def __init__(self, sm=None, pm=None, can_sock=None): # if hw_type == HwType.whitePanda: # self.events.add(EventName.whitePandaUnsupported, static=True) + uname = subprocess.check_output(["uname", "-v"], encoding='utf8').strip() + if uname == "#1 SMP PREEMPT Wed Jun 10 12:40:53 PDT 2020": + self.events.add(EventName.neosUpdateRequired, static=True) + # controlsd is driven by can recv, expected at 100Hz self.rk = Ratekeeper(100, print_delay_threshold=None) self.prof = Profiler(False) # off by default diff --git a/selfdrive/controls/lib/events.py b/selfdrive/controls/lib/events.py index 6bd865a974bd55..421aaaade93df7 100644 --- a/selfdrive/controls/lib/events.py +++ b/selfdrive/controls/lib/events.py @@ -507,6 +507,16 @@ def calibration_incomplete_alert(CP, sm, metric): ET.NO_ENTRY: NoEntryAlert("Speed Too Low"), }, + EventName.neosUpdateRequired: { + ET.PERMANENT: Alert( + "NEOS Update Required", + "Please Wait for Update", + AlertStatus.normal, AlertSize.mid, + Priority.HIGHEST, VisualAlert.none, AudibleAlert.none, 0., 0., .2), + ET.NO_ENTRY: NoEntryAlert("NEOS Update Required"), + }, + + EventName.sensorDataInvalid: { ET.PERMANENT: Alert( "No Data from Device Sensors",