2cb633e99d
Clean-room reproduction of PFPX: route generation + IFPS validation + OFP. Independent design — official ICAO/EUROCONTROL data only (RAD, FRA points, IFPUV oracle); no community FPL sources. Workspace crates: core (routing/discover/rad/navdata/perf/export), cli, server, rad (Annex parser), gui (Tauri v2 + React + MapLibre). Route discovery: oracle-in-the-loop repair against Eurocontrol IFPUV. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
92 lines
3.4 KiB
Markdown
92 lines
3.4 KiB
Markdown
# 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 :
|
|
|
|
```
|
|
<dossier X-Plane>/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/<ICAO>.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.
|