Human Lane Change ui fix

Toggled on, would show adjecent radar leads, even if that toggle was off.
Now gated to its toggle in developer ui.
This commit is contained in:
whoisdomi
2026-06-01 21:20:16 -05:00
parent 9f30661f6d
commit d2a8163f32
2 changed files with 20 additions and 14 deletions
+3 -1
View File
@@ -158,7 +158,9 @@ class ModelRenderer(Widget):
if render_lead_indicator and radar_state:
self._draw_lead_indicator(radar_state)
if sm.valid.get("starpilotRadarState", False):
# Adjacent leads may be published by radard for non-UI consumers (e.g. HumanLaneChanges),
# so gate drawing on the AdjacentLeadsUI param directly.
if sm.valid.get("starpilotRadarState", False) and self._params.get_bool("AdjacentLeadsUI"):
self._draw_adjacent_leads()
self._draw_radar_tracks()
+17 -13
View File
@@ -51,25 +51,29 @@ void ModelRenderer::draw(QPainter &painter, const QRect &surface_rect) {
drawLead(painter, lead_two, lead_vertices[1], surface_rect, QColor(starpilot_toggles.value("lead_marker_color").toString()));
}
SubMaster &fpsm = *(starpilotUIState()->sm);
const cereal::StarPilotRadarState::Reader &starpilot_radar_state = fpsm["starpilotRadarState"].getStarpilotRadarState();
// Adjacent leads may be published by radard for non-UI consumers (e.g. HumanLaneChanges),
// so gate drawing on the AdjacentLeadsUI toggle directly.
if (starpilot_toggles.value("adjacent_lead_tracking").toBool()) {
SubMaster &fpsm = *(starpilotUIState()->sm);
const cereal::StarPilotRadarState::Reader &starpilot_radar_state = fpsm["starpilotRadarState"].getStarpilotRadarState();
const cereal::StarPilotRadarState::LeadData::Reader &lead_left = starpilot_radar_state.getLeadLeft();
const cereal::StarPilotRadarState::LeadData::Reader &lead_right = starpilot_radar_state.getLeadRight();
const cereal::StarPilotRadarState::LeadData::Reader &lead_left = starpilot_radar_state.getLeadLeft();
const cereal::StarPilotRadarState::LeadData::Reader &lead_right = starpilot_radar_state.getLeadRight();
updateAdjacentLeads(starpilot_radar_state, model.getPosition());
updateAdjacentLeads(starpilot_radar_state, model.getPosition());
starpilot_nvg->adjacentLeadTextRect = QRect();
starpilot_nvg->adjacentLeadTextRect = QRect();
if (lead_left.getStatus() && lead_right.getStatus() && (lead_left.getDRel() < lead_right.getDRel())) {
drawLead(painter, reinterpret_cast<const cereal::RadarState::LeadData::Reader&>(lead_left), adjacent_lead_vertices[0], surface_rect, starpilot_nvg->blueColor(), true);
drawLead(painter, reinterpret_cast<const cereal::RadarState::LeadData::Reader&>(lead_right), adjacent_lead_vertices[1], surface_rect, starpilot_nvg->purpleColor(), true);
} else {
if (lead_left.getStatus()) {
if (lead_left.getStatus() && lead_right.getStatus() && (lead_left.getDRel() < lead_right.getDRel())) {
drawLead(painter, reinterpret_cast<const cereal::RadarState::LeadData::Reader&>(lead_left), adjacent_lead_vertices[0], surface_rect, starpilot_nvg->blueColor(), true);
}
if (lead_right.getStatus()) {
drawLead(painter, reinterpret_cast<const cereal::RadarState::LeadData::Reader&>(lead_right), adjacent_lead_vertices[1], surface_rect, starpilot_nvg->purpleColor(), true);
} else {
if (lead_left.getStatus()) {
drawLead(painter, reinterpret_cast<const cereal::RadarState::LeadData::Reader&>(lead_left), adjacent_lead_vertices[0], surface_rect, starpilot_nvg->blueColor(), true);
}
if (lead_right.getStatus()) {
drawLead(painter, reinterpret_cast<const cereal::RadarState::LeadData::Reader&>(lead_right), adjacent_lead_vertices[1], surface_rect, starpilot_nvg->purpleColor(), true);
}
}
}
}