Add terrain and traffic alerts/warnings, track log, distance rings - #12
Merged
Merged
Conversation
- Implemented terrain elevation service with caching and LRU eviction. - Added decoding logic for terrain-rgb tiles and elevation calculations. - Created tests for terrain elevation functions including decoding, fetching, and caching behavior. feat: add track log service and tests - Introduced track log service to record and manage aircraft track points. - Implemented deduplication of points based on polling time and capacity management. - Added tests to verify track log functionality including recording, retrieval, and pruning. feat: add known airports service - Created a service to manage known US airport data with warming and proximity querying. - Implemented functions to fetch and normalize airport data from static sources. feat: add path store with Zustand - Implemented a Zustand store for managing path predictions, hold entries, alerts, and conflict pairs. - Added functionality for setting results and clearing state with revision tracking. test: add unit tests for path store - Created tests for the path store to verify state management and result handling. - Ensured correct behavior for setting results and clearing the store.
- Implemented a toggle for displaying predicted hold-entry paths in the HoldEntryLayer component, defaulting to off. - Enhanced PathControls to include a button for toggling hold entries visibility. - Updated the settings store to manage the new hold entry toggle state. - Introduced constants for hold entry confirmation and abandonment criteria to improve entry prediction accuracy. - Modified the hold entry logic to require multiple consecutive qualifying polls before drawing an entry, preventing transient qualifications from causing visual artifacts. - Updated terrain scanning logic to ensure proper handling of MVA sectors and DEM ground clearance, improving safety alerts. - Added tests to validate the new hold entry confirmation logic and ensure correct behavior under various conditions.
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.
This pull request introduces a comprehensive path-prediction, conflict, and terrain alerting engine to the app, along with related architectural and documentation updates. It adds new stores and services for path prediction, track logging, and terrain scanning, and updates the UI overlays and documentation to reflect these features. The change also expands test coverage and clarifies the app’s advisory-only status regarding conflict information.
Major feature: Path prediction, conflict, and terrain alerting engine
Architecture & State Management
pathstore to Zustand, updated the store count in both documentation and code structure references, and included new shared types for path prediction. [1] [2]Path Prediction & Alerting Engine
usePathEngine.ts) that predicts aircraft positions, detects hold entries, evaluates traffic conflicts (TCAS TA/RA, radar tiers), and performs terrain scanning with MVA and DEM data. Results are stored in the newpathstore and drive overlays and alert UI.RangeRingsLayeroverlay that tracks the selected aircraft’s interpolated position every frame, alongside overlays for track logs, hold entries, and predicted paths. [1] [2]UI & Documentation Updates
Configuration & Testing
TRACKLOG_*,PREDICT_*,HOLD_ENTRY_*,CONFLICT_*,RADAR_*,TERRAIN_*,RING_ZOOM_BUCKETS) and updated test coverage expectations for the new logic.CIFP Parser Version Bump