feat(3-1): stale state detection and dimmed display
When fetch times out or returns empty after prior data, retain last aircraft with is_stale=True and render them as black outlines so the display stays informative rather than blank or crashing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,12 @@ import math
|
||||
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
|
||||
from planemapper.constants import COLOUR_TRAIL, TRAIL_DOT_SIZE_MAX, TRAIL_DOT_SIZE_MIN
|
||||
from planemapper.constants import (
|
||||
COLOUR_STALE_OUTLINE,
|
||||
COLOUR_TRAIL,
|
||||
TRAIL_DOT_SIZE_MAX,
|
||||
TRAIL_DOT_SIZE_MIN,
|
||||
)
|
||||
from planemapper.models import Aircraft
|
||||
from planemapper.renderer.colours import altitude_to_colour
|
||||
|
||||
@@ -78,5 +83,8 @@ def draw_aircraft(
|
||||
colour = altitude_to_colour(aircraft.altitude_ft)
|
||||
draw = ImageDraw.Draw(image)
|
||||
_draw_trail(draw, trail)
|
||||
_draw_arrow(draw, cx, cy, aircraft.heading or 0.0, colour, aircraft.is_mlat)
|
||||
if aircraft.is_stale:
|
||||
_draw_arrow(draw, cx, cy, aircraft.heading or 0.0, COLOUR_STALE_OUTLINE, is_mlat=True)
|
||||
else:
|
||||
_draw_arrow(draw, cx, cy, aircraft.heading or 0.0, colour, aircraft.is_mlat)
|
||||
_draw_label(draw, cx, cy, aircraft, colour)
|
||||
|
||||
Reference in New Issue
Block a user