DrawRadarTracks

This commit is contained in:
royjr
2026-07-24 18:56:51 -04:00
parent 142cdb8221
commit dfd934ea35
6 changed files with 16 additions and 4 deletions
+1
View File
@@ -155,6 +155,7 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"CustomAccShortPressIncrement", {PERSISTENT | BACKUP, INT, "1"}},
{"DeviceBootMode", {PERSISTENT | BACKUP, INT, "0"}},
{"DevUIInfo", {PERSISTENT | BACKUP, INT, "0"}},
{"DrawRadarTracks", {PERSISTENT | BACKUP, BOOL, "0"}},
{"EnableCopyparty", {PERSISTENT | BACKUP, BOOL}},
{"EnableGithubRunner", {PERSISTENT | BACKUP, BOOL}},
{"GreenLightAlert", {PERSISTENT | BACKUP, BOOL, "0"}},
@@ -118,6 +118,12 @@ class TogglesLayout(Widget):
selected_index=self._params.get("RadarTracks", return_default=True),
)
self._toggles["RadarTracks"] = self._radar_tracks_setting
self._toggle_defs["DrawRadarTracks"] = (
lambda: tr("Draw Radar Tracks"),
tr_noop("Show radar tracks on the driving screen. Disabling this does not disable radar processing."),
"",
False,
)
self._locked_toggles = set()
for param, (title, desc, icon, needs_restart) in self._toggle_defs.items():
toggle = toggle_item(
@@ -22,9 +22,11 @@ class TogglesLayoutMici(NavScroller):
record_mic = BigParamControl("record & upload mic audio", "RecordAudio", toggle_callback=restart_needed_callback)
enable_openpilot = BigParamControl("enable sunnypilot", "OpenpilotEnabledToggle", toggle_callback=restart_needed_callback)
radar_tracks = BigMultiParamToggle("radar tracks", "RadarTracks", ["off", "lead only", "full radar"])
draw_radar_tracks = BigParamControl("draw radar tracks", "DrawRadarTracks")
self._scroller.add_widgets([
radar_tracks,
draw_radar_tracks,
self._personality_toggle,
self._experimental_btn,
is_metric_toggle,
@@ -38,6 +40,7 @@ class TogglesLayoutMici(NavScroller):
# Toggle lists
self._refresh_toggles = (
("RadarTracks", radar_tracks),
("DrawRadarTracks", draw_radar_tracks),
("ExperimentalMode", self._experimental_btn),
("IsMetric", is_metric_toggle),
("IsLdwEnabled", ldw_toggle),
@@ -135,7 +135,7 @@ class ModelRenderer(Widget, ModelRendererSP):
model = sm['modelV2']
radar_state = sm['radarState'] if sm.valid['radarState'] else None
lead_one = radar_state.leadOne if radar_state else None
render_lead_indicator = ui_state.radar_tracks != 0 and radar_state is not None
render_lead_indicator = ui_state.draw_radar_tracks and ui_state.radar_tracks != 0 and radar_state is not None
# Update model data when needed
model_updated = sm.updated['modelV2']
@@ -158,7 +158,7 @@ class ModelRenderer(Widget, ModelRendererSP):
self._draw_lane_lines()
self._draw_path(sm)
if sm.valid['liveTracks'] and sm.recv_frame['liveTracks'] >= ui_state.started_frame:
if ui_state.draw_radar_tracks and sm.valid['liveTracks'] and sm.recv_frame['liveTracks'] >= ui_state.started_frame:
if (sm.updated['liveTracks'] or sm.updated['liveCalibration'] or transform_updated or
not self.radar_tracks.projection_initialized):
self.radar_tracks.update_radar_tracks(
@@ -119,7 +119,7 @@ class ModelRenderer(Widget, ChevronMetrics, ModelRendererSP):
model = sm['modelV2']
radar_state = sm['radarState'] if sm.valid['radarState'] else None
lead_one = radar_state.leadOne if radar_state else None
render_lead_indicator = ui_state.radar_tracks != 0 and radar_state is not None
render_lead_indicator = ui_state.draw_radar_tracks and ui_state.radar_tracks != 0 and radar_state is not None
# Update model data when needed
model_updated = sm.updated['modelV2']
@@ -141,7 +141,7 @@ class ModelRenderer(Widget, ChevronMetrics, ModelRendererSP):
self._draw_lane_lines()
self._draw_path(sm)
if sm.valid['liveTracks'] and sm.recv_frame['liveTracks'] >= ui_state.started_frame:
if ui_state.draw_radar_tracks and sm.valid['liveTracks'] and sm.recv_frame['liveTracks'] >= ui_state.started_frame:
if (sm.updated['liveTracks'] or sm.updated['liveCalibration'] or transform_updated or
not self.radar_tracks.projection_initialized):
self.radar_tracks.update_radar_tracks(
@@ -43,6 +43,7 @@ class UIStateSP:
self.chevron_metrics = None
self.custom_interactive_timeout: int = 0
self.developer_ui = None
self.draw_radar_tracks: bool = self.params.get_bool("DrawRadarTracks")
self.hide_v_ego_ui: bool = False
self.radar_tracks: int = self.params.get("RadarTracks", return_default=True)
self.onroad_brightness: int = 0
@@ -152,6 +153,7 @@ class UIStateSP:
self.chevron_metrics = self.params.get("ChevronInfo")
self.custom_interactive_timeout = self.params.get("InteractivityTimeout", return_default=True)
self.developer_ui = self.params.get("DevUIInfo")
self.draw_radar_tracks = self.params.get_bool("DrawRadarTracks")
self.hide_v_ego_ui = self.params.get_bool("HideVEgoUI")
self.radar_tracks = self.params.get("RadarTracks", return_default=True)
self.onroad_brightness = int(float(self.params.get("OnroadScreenOffBrightness", return_default=True)))