From 42818ba95b815a0b13ebbed7203ceeb881a32464 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Sat, 18 May 2024 03:59:26 +0000 Subject: [PATCH 1/3] Sentry: Add `sunnylink_dongle_id` tag --- selfdrive/sentry.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/selfdrive/sentry.py b/selfdrive/sentry.py index d7472e7819..0d947ac381 100644 --- a/selfdrive/sentry.py +++ b/selfdrive/sentry.py @@ -7,6 +7,7 @@ import subprocess from enum import Enum from sentry_sdk.integrations.threading import ThreadingIntegration +from openpilot.common.api.sunnylink import UNREGISTERED_SUNNYLINK_DONGLE_ID from openpilot.common.basedir import BASEDIR from openpilot.common.params import Params from openpilot.selfdrive.athena.registration import UNREGISTERED_DONGLE_ID, is_registered_device @@ -70,7 +71,7 @@ def save_exception(exc_text: str) -> None: def bind_user() -> None: - dongle_id, gitname = get_properties() + dongle_id, gitname, _ = get_properties() sentry_sdk.set_user({"id": dongle_id, "ip_address": IP_ADDRESS, "name": gitname}) @@ -90,23 +91,19 @@ def set_tag(key: str, value: str) -> None: sentry_sdk.set_tag(key, value) -def get_properties() -> tuple[str, str]: +def get_properties() -> tuple[str, str, str]: params = Params() - dongle_id = params.get("DongleId", encoding='utf-8') - if dongle_id in (None, UNREGISTERED_DONGLE_ID): - hardware_serial = params.get("HardwareSerial", encoding='utf-8') - hardware_serial = "" if hardware_serial is None else hardware_serial - dongle_id = UNREGISTERED_DONGLE_ID + hardware_serial - gitname = params.get("GithubUsername", encoding='utf-8') - if gitname is None: - gitname = "" + hardware_serial: str = params.get("HardwareSerial", encoding='utf-8') or "" + gitname: str = params.get("GithubUsername", encoding='utf-8') or "" + dongle_id: str = params.get("DongleId", encoding='utf-8') or f"{UNREGISTERED_DONGLE_ID}-{hardware_serial}" + sunnylink_dongle_id: str = params.get("SunnylinkDongleId", encoding='utf-8') or UNREGISTERED_SUNNYLINK_DONGLE_ID - return dongle_id, gitname + return dongle_id, gitname, sunnylink_dongle_id def get_init() -> None: params = Params() - dongle_id, _ = get_properties() + dongle_id, _, _ = get_properties() route_name = params.get("CurrentRoute", encoding='utf-8') subprocess.call(["./bootlog", "--started"], cwd=os.path.join(BASEDIR, "system/loggerd")) with sentry_sdk.configure_scope() as scope: @@ -124,7 +121,7 @@ def init(project: SentryProject) -> bool: #env = "release" if build_metadata.tested_channel else "master" env = build_metadata.channel_type - dongle_id, gitname = get_properties() + dongle_id, gitname, sunnylink_dongle_id = get_properties() integrations = [] if project == SentryProject.SELFDRIVE: @@ -149,6 +146,7 @@ def init(project: SentryProject) -> bool: sentry_sdk.set_tag("branch", build_metadata.channel) sentry_sdk.set_tag("commit", build_metadata.openpilot.git_commit) sentry_sdk.set_tag("device", HARDWARE.get_device_type()) + sentry_sdk.set_tag("sunnylink_dongle_id", sunnylink_dongle_id) if project == SentryProject.SELFDRIVE: sentry_sdk.Hub.current.start_session() From 136fecf86b537bf9036f203ba5867fa825ae9aaf Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Sat, 18 May 2024 04:02:16 +0000 Subject: [PATCH 2/3] SP-123: Hyundai CAN Longitudinal: Auto-enable radar tracks on platforms with Mando radar --- CHANGELOGS.md | 2 ++ selfdrive/car/hyundai/interface.py | 9 ++++----- selfdrive/car/hyundai/radar_interface.py | 4 +--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/CHANGELOGS.md b/CHANGELOGS.md index 342d62d4fc..9156edecd9 100644 --- a/CHANGELOGS.md +++ b/CHANGELOGS.md @@ -27,6 +27,8 @@ sunnypilot - 0.9.7.0 (2024-05-xx) * NEW❗: Forced Offroad mode * Force sunnypilot in the offroad state even when the car is on * When Forced Offroad mode is on, allows changing offroad-only settings even when the car is turned on +* UPDATED: Hyundai CAN Longitudinal + * Auto-enable radar tracks on platforms with applicable Mando radar * UPDATED: Hyundai CAN-FD Camera-based SCC * NEW❗: Parse lead info for camera-based SCC platforms with longitudinal support * Improve lead tracking when using openpilot longitudinal diff --git a/selfdrive/car/hyundai/interface.py b/selfdrive/car/hyundai/interface.py index d2a719ccd9..f1c2d05e38 100644 --- a/selfdrive/car/hyundai/interface.py +++ b/selfdrive/car/hyundai/interface.py @@ -87,11 +87,6 @@ class CarInterface(CarInterfaceBase): ret.steerLimitTimer = 0.4 CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) - if candidate in (CAR.HYUNDAI_SANTA_FE_2022, CAR.HYUNDAI_SANTA_FE_HEV_2022, CAR.HYUNDAI_SANTA_FE_PHEV_2022): - if any(fw.ecu == "fwdRadar" and fw.fwVersion is not None for fw in car_fw): - ret.radarUnavailable = False - ret.spFlags |= HyundaiFlagsSP.SP_RADAR_TRACKS.value - # *** longitudinal control *** if candidate in CANFD_CAR: ret.longitudinalTuning.kpV = [0.1] @@ -129,6 +124,10 @@ class CarInterface(CarInterfaceBase): if 0x544 in fingerprint[0]: ret.spFlags |= HyundaiFlagsSP.SP_NAV_MSG.value + if ret.flags & HyundaiFlags.MANDO_RADAR and ret.radarUnavailable: + ret.spFlags |= HyundaiFlagsSP.SP_RADAR_TRACKS.value + ret.radarUnavailable = False + # *** panda safety config *** if candidate in CANFD_CAR: cfgs = [get_safety_config(car.CarParams.SafetyModel.hyundaiCanfd), ] diff --git a/selfdrive/car/hyundai/radar_interface.py b/selfdrive/car/hyundai/radar_interface.py index f00b993563..e470011737 100644 --- a/selfdrive/car/hyundai/radar_interface.py +++ b/selfdrive/car/hyundai/radar_interface.py @@ -48,8 +48,6 @@ class RadarInterface(RadarInterfaceBase): self.radar_off_can = CP.radarUnavailable self.rcp = get_radar_can_parser(CP) - self.sp_radar_tracks = CP.spFlags & HyundaiFlagsSP.SP_RADAR_TRACKS - def update(self, can_strings): if self.radar_off_can or (self.rcp is None): return super().update(None) @@ -57,7 +55,7 @@ class RadarInterface(RadarInterfaceBase): vls = self.rcp.update_strings(can_strings) self.updated_messages.update(vls) - if self.trigger_msg not in self.updated_messages and not self.sp_radar_tracks: + if self.trigger_msg not in self.updated_messages: return None rr = self._update(self.updated_messages) From 536c73d00b101e0367dbe347038cd601dc2786ed Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Sat, 18 May 2024 10:40:12 -0400 Subject: [PATCH 3/3] ui: Visuals: Fix freezing --- selfdrive/manager/manager.py | 1 + selfdrive/ui/qt/offroad/sunnypilot/visuals_settings.cc | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/selfdrive/manager/manager.py b/selfdrive/manager/manager.py index 4a592a0022..8ff820cb7b 100755 --- a/selfdrive/manager/manager.py +++ b/selfdrive/manager/manager.py @@ -70,6 +70,7 @@ def manager_init() -> None: ("LastSpeedLimitSignTap", "0"), ("LkasToggle", "0"), ("MadsIconToggle", "1"), + ("MapboxFullScreen", "0"), ("MapdVersion", f"{VERSION}"), ("MaxTimeOffroad", "9"), ("NNFF", "0"), diff --git a/selfdrive/ui/qt/offroad/sunnypilot/visuals_settings.cc b/selfdrive/ui/qt/offroad/sunnypilot/visuals_settings.cc index 6d2b1ebff6..46bd84b6d9 100644 --- a/selfdrive/ui/qt/offroad/sunnypilot/visuals_settings.cc +++ b/selfdrive/ui/qt/offroad/sunnypilot/visuals_settings.cc @@ -60,7 +60,7 @@ VisualsPanel::VisualsPanel(QWidget *parent) : ListWidget(parent) { { "MapboxFullScreen", tr("Navigation: Display in Full Screen"), - QString(tr("Enable this will display the built-in navigation in full screen.
To switch back to driving view, tap on the border edge.")), + tr("Enable this will display the built-in navigation in full screen.
To switch back to driving view, tap on the border edge."), "../assets/offroad/icon_blank.png", }, {