docs(ledmatrix-flights): document all 96 settings, with real renders - #401
Merged
Conversation
The "Full Configuration Options" section pointed at config_schema.json instead of listing anything, so 84 of the 96 settings were never named -- the whole map_background block, the whole metar, proximity_alert, fonts and flightaware blocks, every unit and colour key, and the filters that decide which aircraft appear at all. All 96 are now documented by key, grouped by area, including the detail that the FlightAware and OpenSky credentials can be given either nested or flat because _normalize_flightaware_config() copies one onto the other at start-up. Adds the images it had none of: the four display modes, imperial against metric, degrees against cardinal headings, and four panel sizes. Aircraft are seeded onto the plugin instance because the live source is a local SkyAware receiver; positions and callsigns are invented and placed inside the default 10-mile radius. map_background is off in the shots, since its basemap tiles come from a live tile server and could not reproduce. One fix: _render_map_image() read aircraft['color'] with a hard subscript, while every other read of that field in this plugin uses .get with a fallback. A record that reached the map without one raised KeyError and took the whole mode to "ERR: map" while the other modes rendered the same aircraft fine. It now falls back, verified by rendering map mode with the key deliberately absent. Not affected by #397: this plugin has its own _get_font_height() that never calls display_manager.get_font_height(), and renderer.py already loads its 6x10.bdf at the face's native 10px with a fallback. check_plugin.py: 8/8 pass. The run attempts a real connection to the default skyaware_url and waits out a 5s timeout at each size -- filed as #400. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Up to standards ✅🟢 Issues
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What was missing
The section called Full Configuration Options contained no options — it pointed at
config_schema.json. 84 of the 96 settings were never named, including entire blocks:map_background.*(10 settings) — tile provider, brightness, contrast, saturation, cache TTLflightaware.*(10) — plus its own nestedbackground_servicemetar.*,proximity_alert.*,fonts.*,background_service.*min_altitude_ft,max_altitude_ft,aircraft_categories,max_aircraft,tracked_flights)All 96 are now documented by key, grouped by area. That includes a note that the FlightAware and OpenSky credentials work either nested under
flightawareor as flat top-level keys, because_normalize_flightaware_config()copies one onto the other at start-up — the schema has both and the old README explained neither.The config-token audit drops nothing.
Images
The four display modes, imperial vs metric, degrees vs cardinal headings, and four panel sizes.
Aircraft are seeded onto the plugin instance rather than fetched, since the live source is a local SkyAware receiver. Positions and callsigns are invented and placed inside the default 10-mile radius.
map_backgroundis off in every shot: its basemap tiles come from a live tile server, so that one screen cannot reproduce offline, and the README says so rather than implying the map is normally that sparse.One fix
_render_map_image()read the aircraft colour with a hard subscript:Every other read of that field in this plugin uses
.getwith a fallback. A record that reached the map without one raisedKeyError, and becausedisplay()catches per-mode errors the whole screen becameERR: map— while the other three modes rendered the same aircraft without complaint. It now falls back, verified by rendering map mode with the key deliberately absent.I found this by accident: my own fixture omitted
color, which is what made it visible.On #397
Not affected. This plugin has its own
_get_font_height()that never callsdisplay_manager.get_font_height(), andrenderer.pyalready loads its6x10.bdfat the face's native 10px with an explicit fallback — the correct pattern, unlike the plugins fixed in #362/#363/#369/#370/#374/#388/#394.Checks
check_plugin.py: 8/8 pass, no failuresrender_docs_assets.py --check: all five images reproduceskyaware_urland waits out a 5-second timeout at each of the eight sizes — that default is a specific private LAN address, filed as ledmatrix-flights ships a specific LAN IP as the default skyaware_url #4001.12.18 → 1.12.19.
🤖 Generated with Claude Code