Aspects techniques
Ephemeridium est une application Windows native, écrite en C++23, avec WinUI 3 pour l'interface. Le calcul repose sur une bibliothèque d'astronomie développée pour le projet ; le reste utilise les composants de Windows.
Composants
| Langage | C++23 (Visual Studio, compilateur MSVC) |
|---|---|
| Interface | WinUI 3 (Windows App SDK 2.5), en C++/WinRT et XAML |
| Résultats | une page HTML fabriquée à partir d'un modèle, affichée par Microsoft Edge WebView2 |
| Réseau | WinHTTP (recherche de mise à jour) |
| Données | Windows.Data.Json, compression LZMS de Windows, empreintes SHA-256 par BCrypt |
| Astronomie | bibliothèque propre au projet, commune à Ephemeridium, Heclium et Astrosynium |
Le calcul
Les positions du Soleil et des planètes viennent de la théorie VSOP87 (version B), celles de la Lune de la théorie ELP2000-82 (version B). La bibliothèque applique ensuite, selon les choix faits, la précession, la nutation, l'aberration, la conversion entre les repères (VSOP et FK5) et le passage aux coordonnées rectangulaires, sphériques, horaires ou horizontales.
Plusieurs modèles existent pour chaque étape et sont proposés au choix : six modèles de précession, quatre de nutation, deux pour l'écart entre TT et UTC (dont les secondes intercalaires exactes depuis 1972), deux pour le temps sidéral de Greenwich. L'écart entre ces modèles est justement ce que le logiciel permet de mesurer.
L'affichage
Le résultat est une page HTML : un modèle contient la mise en forme, le logiciel y insère les paramètres et le tableau. Elle est affichée en mémoire par WebView2, sans fichier temporaire, et s'adapte à la taille de la fenêtre. Les boîtes de dialogue sont en WinUI 3, avec les mêmes contrôles que le reste de Windows 11.
L'installation
L'installeur est écrit en C++, sans outil tiers : une application Win32 qui embarque Ephemeridium compressé en LZMS et vérifie chaque fichier par SHA-256. Il installe pour tous les utilisateurs ou pour soi seul, sait se faire silencieux en ligne de commande, et fournit la désinstallation. Il est commun à tous les logiciels du projet.
Ephemeridium embarque le Windows App SDK et la bibliothèque C++ nécessaires : rien d'autre à installer, pas de « redistribuable » Visual C++. Le tout tient dans un installeur de 28 Mo.
En chiffres
- Ephemeridium : environ 5 400 lignes de C++ ;
- bibliothèque d'astronomie : environ 22 000 lignes, partagées avec Heclium et Astrosynium ;
- données embarquées : 2,3 Mo de coefficients VSOP87 et ELP2000-82.
Les articles racontent comment tout cela a été construit.