Le ZKV1000

Sébastien MARQUE fix issue with some menus
Latest commit 2f0f306 7 years ago
README.md

Origine du projet

Cet instrument était prévu pour s'approcher du Garmin Primus 1000. Au début il était écrit avec une multitude de petits objets 3D placés sur l'écran avec un écart suffisament faible pour que le pilote ait l'impression d'un vrai écran 2D.

J'avais écrit le ZKV500 qui se rapprochait d'un GPS Garmin 500, donc ZKV1000 semblait tout indiqué :-), ZKV pour Zakharov...

Le ZKV1000 ancien (version XML) incluait aussi un moyen de rafraîchir les écrans sans altérer la vitesse d'affichage avec un système de rotation de fonctions qui chacune l'une après l'autre s'occupait d'un seul ou d'un petit groupe d'élément à des fréquences diverses. Que l'instrument ne freine pas le simulateur était primordial.

Le zkv1000 ancien incluait aussi une carte qui nécessitait d'être créée au préalable via ImageMagick et un autre outil de FG dont j'ai perdu le nom. Le script en Perl créeait une carte en collant les bordures des cartes adjacentes à celle dans laquelle l'appareil se trouvait, avec ImageMagick. Ça marchait mais le rendu était pas terrible, très peu flexible (pas de zoom, pas de génération à la volée).

J'ai abandonné le zkv1000 par les aléeas de la vie, il a été amélioré un peu par d'autres dont j'ai oublié le nom notamment l'apport du radar de relief, mais la façon de faire n'optimisait pas du tout la vitesse d'affichage, et à moins d'avoir une bête de course le radar était inutilisable.

Le zkv1000 incluait aussi un ensemble de menus intégrés, avec navigation par les boutons, et une recherche des balises et aéroports, ainsi qu'un calculateur de trajectoire simple (balise à balise).

Regardant de temps à autre ce que devenait FG je découvrais Canvas, le SVG, et les premières réalisations de PFD/MFD avec ce nouveau jouet.

Trop tentant, il fallait essayer de rendre le zkv1000 Canvas-compliant. Et l'aventure (re)commence!

Objectifs

Il ne sert à rien d'essayer de reproduire à l'identique le Garmin Primus 1000, d'autres y arriveront bien mieux que moi pour créer une copie fidèle.
Mais il est possible de s'en approcher assez fidèlement en suivant les manuels Garmin disponibles. Le zkv1000 n'a nullement la prétention de pouvoir servir de support d'entrainement officiel ou pas.
Vous êtes prévenus!

Dans ce projet je privilégie particulièrement

  1. la modularité pour des évolutions futures
  2. l'optimisation, enfin... supposée, mes qualités de dev' ne sont probablement assez élevées ;)
  3. une intégration la plus simple possible dans n'importe quel appareil
  4. une utilisation qui se veut proche de ce que fait l'instrument de référence, mais en y intégrant les avantages d'être dans un simulateur et pas dans la vie réelle:
    • ajout de fonctionnalités spécifiques
    • retraits de fonctionnalités peu utiles dans un simulateur

État acuel

J'ai récupéré l'implémentation du projet "Farmin/G1000". Le GDU-104X reprend l'implémentation du Garmin Primus 1000, et notamment les objets 3D, et les SVG. Les objets 3D sont bien plus jolis que ceux du premier zkv1000 (le .ac de l'ancien était tout cassé, pas réussi à réparer), et le SVG comportait déjà beaucoup d'éléments.

général


Instruments de base disponibles

  • double-écran : PFD avec instrus de base, et MFD avec radios, pas de menus
  • animations écrans : wrapper pour l'affichage des objets (et plus)
    • AI: reste l'échelle du pitch dont je ne sais pas si il faut la centrer sur le symbole de l'avion
    • VSI, IAS, IA, Compasi, HDG:
  • animation modèle 3D : les boutons et molettes fonctionnent (radio, comm, softkey, etc.), il manque les textures pour les boutons du MFD

dans le détail

  • apprentissage:
    • Canvas
    • SVG
    • InkScape (enfin pour les besoins du zkv1000)
    • format
    • archi de l'image importée (avec modification directe dans Vim)
  • XML
  • structure Nasal :
    • en apprendre plus sur les classes (les parents multiples)
    • utilisations des nouvelles API en remplacement des anciennes (maketimer, ...)
    • enfin retrouvée la possibilité de gérer le zkv1000 par la console Nasal et même le nouvel REPL

feuille de route

  1. avoir un PFD utilisable avec les fonctions de base, sans radio-navigation
  2. afficher l'EIS
  3. afficher les widgets du PFD
  4. rendre disponible le MFD

documentation