From c88bebbc3eedb43d87cd48a9fbc0de4d2aee2f7e Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Sun, 7 Jun 2026 20:37:47 -0500 Subject: [PATCH] Zik is my boss --- common/params_keys.h | 3 ++- selfdrive/ui/layouts/settings/starpilot/appearance.py | 4 ++++ .../assets/components/tools/device_settings_layout.json | 7 +++++++ starpilot/ui/qt/offroad/visual_settings.cc | 1 + system/manager/manager.py | 2 ++ 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/common/params_keys.h b/common/params_keys.h index e4d713616..af65b39fc 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -395,7 +395,8 @@ inline static std::unordered_map keys = { {"MapSpeedLimit", {CLEAR_ON_MANAGER_START, FLOAT, "0.0", "0.0"}}, {"NavDesiresAllowed", {PERSISTENT, BOOL, "1", "0", 2}}, {"NavLongitudinalAllowed", {PERSISTENT, BOOL, "1", "0", 2}}, - {"NavDestination", {PERSISTENT | CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, STRING, "", ""}}, + {"ClearNavOnOffroad", {PERSISTENT, BOOL, "1", "1", 2}}, + {"NavDestination", {PERSISTENT | CLEAR_ON_MANAGER_START, STRING, "", ""}}, {"NavInstructionCollapsed", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL, "0", "0"}}, {"NavInstructionState", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, JSON, "{}", "{}"}}, {"NextMapSpeedLimit", {CLEAR_ON_MANAGER_START, JSON, "{}", "{}"}}, diff --git a/selfdrive/ui/layouts/settings/starpilot/appearance.py b/selfdrive/ui/layouts/settings/starpilot/appearance.py index 368889336..2323fad60 100644 --- a/selfdrive/ui/layouts/settings/starpilot/appearance.py +++ b/selfdrive/ui/layouts/settings/starpilot/appearance.py @@ -369,6 +369,10 @@ class StarPilotAppearanceLayout(_SettingsPage): subtitle=tr_noop("Show navigation info on the driving screen."), get_state=lambda: self._params.get_bool("NavigationUI"), set_state=lambda s: self._params.put_bool("NavigationUI", s)), + SettingRow("ClearNavOnOffroad", "toggle", tr_noop("Clear Route When Offroad"), + subtitle=tr_noop("Clear the active navigation destination when the device goes offroad."), + get_state=lambda: self._params.get_bool("ClearNavOnOffroad"), + set_state=lambda s: self._params.put_bool("ClearNavOnOffroad", s)), SettingRow("RoadNameUI", "toggle", tr_noop("Road Name"), subtitle="", get_state=lambda: self._params.get_bool("RoadNameUI"), diff --git a/starpilot/system/the_pond/assets/components/tools/device_settings_layout.json b/starpilot/system/the_pond/assets/components/tools/device_settings_layout.json index 2697f7580..509e9462b 100644 --- a/starpilot/system/the_pond/assets/components/tools/device_settings_layout.json +++ b/starpilot/system/the_pond/assets/components/tools/device_settings_layout.json @@ -1960,6 +1960,13 @@ "ui_type": "toggle", "is_parent_toggle": true }, + { + "key": "ClearNavOnOffroad", + "label": "Clear Route When Offroad", + "description": "Clear the active navigation destination when the device goes offroad.", + "data_type": "bool", + "ui_type": "toggle" + }, { "key": "RoadNameUI", "label": "Road Name", diff --git a/starpilot/ui/qt/offroad/visual_settings.cc b/starpilot/ui/qt/offroad/visual_settings.cc index 4f5fb2da4..3447e14d0 100644 --- a/starpilot/ui/qt/offroad/visual_settings.cc +++ b/starpilot/ui/qt/offroad/visual_settings.cc @@ -61,6 +61,7 @@ StarPilotVisualsPanel::StarPilotVisualsPanel(StarPilotSettingsWindow *parent, bo {"RoadEdgesWidth", tr("Road Edges Width"), tr("Set the road-edge thickness.

Default matches half of the MUTCD lane-line width standard of 4 inches."), ""}, {"NavigationUI", tr("Navigation Widgets"), tr("Speed limits, and other navigation widgets."), "../../starpilot/assets/toggle_icons/icon_map.png"}, + {"ClearNavOnOffroad", tr("Clear Route When Offroad"), tr("Clear the active navigation destination when the device goes offroad."), ""}, {"RoadNameUI", tr("Road Name"), tr("Display the road name at the bottom of the driving screen using data from \"OpenStreetMap (OSM)\"."), ""}, {"ShowSpeedLimits", tr("Show Speed Limits"), tr("Show speed limits in the top-left corner of the driving screen. Uses data from the car's dashboard (if supported) and \"OpenStreetMap (OSM)\"."), ""}, {"SLCMapboxFiller", tr("Show Speed Limits from Mapbox"), tr("Use Mapbox speed-limit data when no other source is available."), ""}, diff --git a/system/manager/manager.py b/system/manager/manager.py index 6663c2042..22704ec62 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -775,6 +775,8 @@ def manager_thread() -> None: # StarPilot variables params_memory.clear_all(ParamKeyFlag.CLEAR_ON_OFFROAD_TRANSITION) + if params.get_bool("ClearNavOnOffroad"): + params.remove("NavDestination") ignition = any(ps.ignitionLine or ps.ignitionCan for ps in sm['pandaStates'] if ps.pandaType != log.PandaState.PandaType.unknown) if ignition and not ignition_prev: