mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-07-18 08:22:05 +08:00
we are one
This commit is contained in:
@@ -154,7 +154,8 @@ class ModelRenderer(Widget, ModelRendererSP):
|
||||
self._draw_path(sm)
|
||||
|
||||
if ui_state.radar_tracks and sm.valid['liveTracks'] and sm.recv_frame['liveTracks'] >= ui_state.started_frame:
|
||||
self.radar_tracks.draw_radar_tracks(sm['liveTracks'], self._map_to_screen, self._path_offset_z, track_size=3)
|
||||
self.radar_tracks.draw_radar_tracks(sm['liveTracks'], self._map_to_screen, self._path_offset_z, track_size=3,
|
||||
screen_offset=(self._rect.x, self._rect.y))
|
||||
|
||||
# if render_lead_indicator and radar_state:
|
||||
# self._draw_lead_indicator()
|
||||
|
||||
@@ -42,7 +42,7 @@ def format_radar_tracks_onroad_columns(live_tracks) -> tuple[str, str]:
|
||||
|
||||
|
||||
class RadarTracks:
|
||||
def draw_radar_tracks(self, live_tracks, map_to_screen, path_offset_z, track_size=6):
|
||||
def draw_radar_tracks(self, live_tracks, map_to_screen, path_offset_z, track_size=6, screen_offset=(0, 0)):
|
||||
for track in live_tracks.points:
|
||||
d_rel, y_rel, v_rel, a_rel = track.dRel, track.yRel, track.vRel, track.aRel
|
||||
if not (math.isfinite(d_rel) and math.isfinite(y_rel) and math.isfinite(v_rel) and math.isfinite(a_rel)):
|
||||
@@ -52,5 +52,5 @@ class RadarTracks:
|
||||
if pt is None:
|
||||
continue
|
||||
|
||||
x, y = pt
|
||||
x, y = pt[0] + screen_offset[0], pt[1] + screen_offset[1]
|
||||
rl.draw_circle(int(x), int(y), track_size, rl.Color(0, 255, 64, 255))
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from cereal import car
|
||||
|
||||
from openpilot.selfdrive.ui.sunnypilot.onroad import radar_tracks
|
||||
from openpilot.selfdrive.ui.sunnypilot.onroad.radar_tracks import format_radar_tracks_onroad_columns, format_radar_tracks_onroad_status, \
|
||||
format_radar_tracks_status
|
||||
|
||||
@@ -37,3 +38,24 @@ def test_format_radar_tracks_status_deduplicates_and_sorts_ranges():
|
||||
"0x210-0x21F -\n0x500-0x51F -\n0x500-0x51F -",
|
||||
"1\n2\n3",
|
||||
)
|
||||
|
||||
|
||||
def test_draw_radar_tracks_applies_screen_offset(monkeypatch):
|
||||
live_tracks = car.RadarData.new_message()
|
||||
points = live_tracks.init("points", 1)
|
||||
points[0].dRel = 10
|
||||
points[0].yRel = 1
|
||||
points[0].vRel = 2
|
||||
points[0].aRel = 0
|
||||
drawn_circles = []
|
||||
monkeypatch.setattr(radar_tracks.rl, "draw_circle", lambda x, y, size, color: drawn_circles.append((x, y, size)))
|
||||
|
||||
radar_tracks.RadarTracks().draw_radar_tracks(
|
||||
live_tracks,
|
||||
lambda d_rel, y_rel, z: (20, 30),
|
||||
path_offset_z=1.2,
|
||||
track_size=3,
|
||||
screen_offset=(100, 7),
|
||||
)
|
||||
|
||||
assert drawn_circles == [(120, 37, 3)]
|
||||
|
||||
Reference in New Issue
Block a user