# flightplanner Outil de *flight planning* **local et offline** pour la simulation de vol (MSFS / P3D / X-Plane), dans l'esprit de PFPX en plus simple. Aucune dépendance cloud : navdata X-Plane importée en base SQLite locale, routing par réseau d'airways, plan carburant, export `.pln` / `.fms` / OFP texte. > État : **MVP en construction**. Voir [`TODO.md`](TODO.md) pour l'avancement, > et [`IDEAS.md`](IDEAS.md) pour la vision produit long terme (briefing complet > type SkyNexus/SimBrief : météo, NOTAM, carte enroute, charts…). ## Architecture Workspace Cargo à deux crates : | Crate | Rôle | |-----------------------|------------------------------------------------------------------| | `flightplanner-core` | Logique métier : parsing navdata, base SQLite, routing, perf, export | | `flightplanner-cli` | Binaire `flightplanner` (interface `clap`) | Une interface web locale (Axum) pourra s'ajouter plus tard sans toucher au cœur. ## Prérequis - **Rust stable** (toolchain MSVC sous Windows) — https://rustup.rs - Un **compilateur C** : `rusqlite` est utilisé en mode `bundled` (SQLite compilé depuis la source). Sous Windows, installer les *Visual Studio Build Tools* (workload « Développement Desktop en C++ »). ## Récupérer la navdata X-Plane (gratuit) L'outil lit le format texte X-Plane. La donnée par défaut, **libre**, est fournie avec X-Plane 11/12 dans : ``` /Resources/default data/ ``` Fichiers utilisés : | Fichier | Contenu | |------------------|------------------------------------------| | `earth_fix.dat` | Waypoints / fixes | | `earth_nav.dat` | Navaids (VOR, DME, NDB, ILS...) | | `earth_awy.dat` | Airways (segments entre waypoints) | Copier ces fichiers dans un dossier local, p. ex. `./navdata/` (ignoré par git). > Pour une navdata à jour (cycle AIRAC courant), une souscription Navigraph est > possible, mais **hors périmètre du MVP** : ici on part de la donnée X-Plane > gratuite, importée manuellement. ## Utilisation ```sh # 1) Importer la navdata en base SQLite locale flightplanner import-navdata --source ./navdata/ --db flightplanner.db # 2) Router (FL-aware si --cruise-fl ou profil avion fourni) flightplanner route --from LFPG --to EGLL --db flightplanner.db # 3) Route + carburant + pré-check IFPS + exports flightplanner route --from LFPG --to EGLL --db flightplanner.db \ --aircraft A320 --cruise-fl 340 \ --check-ifps --ofp \ --pln LFPG-EGLL.pln --fms LFPG-EGLL.fms # Pré-check IFPS d'une chaîne de route arbitraire flightplanner ifps-check --route "LFPG DCT PON UT300 ... MODMI DCT EGLL" --fl 340 --db flightplanner.db ``` > **Aéroports** : les coordonnées viennent des seuils de piste des fichiers > `CIFP/.dat`. Pour router au-delà de la paire testée, extraire tout le > dossier `CIFP/` de l'archive navdata dans `./navdata/CIFP/` avant l'import. > **Check IFPS** : le `--check-ifps` est un **pré-check local best-effort** (non > officiel). Un vrai check IFPS *fiable* nécessite un validateur online > (Autorouter / Eurocontrol NM) — voir [`IDEAS.md`](IDEAS.md). ## Développement ```sh cargo build cargo test cargo fmt && cargo clippy ``` ## Licence MIT OR Apache-2.0. La navdata X-Plane est soumise à sa propre licence et n'est pas redistribuée dans ce dépôt.