Extensions

Introduction

Les extensions sont de petits programmes qui peuvent être rajoutés pour interagir avec KStars / Ekos / INDI afin de fournir des fonctions et fonctionnalités supplémentaires.

Note

Les extensions sont séparées de KStars / Ekos / INDI. Elles ne font pas partie de ce programme. Seule une manière de les appeler est fournie par commodité. Soyez sûr de comprendre les exigences et risques liés à leur utilisation.

Exigences

Chaque extension doit contenir au moins deux fichiers, un troisième pour l'icône est optionnel.

  • Le fichier programme. C'est un fichier exécutable s'exécutant sur le système de l'utilisateur. L'utilisateur utilisé pour faire tourner KStars doit posséder les droits d'exécution sur ce fichier.

  • Le fichier de configuration. C'est un fichier de texte définissant les entrées nécessaires et optionnelles pour cette extension. Il doit se nommer de la même manière que le fichier exécutable avec « .conf » comme extension.

Il est obligatoire que le fichier de configuration contienne une ligne débutant par minimum_kstars_version=n.n.n où n.n.n est la version minimale de KStars qui gère cette extension, par exemple 3.7.3.

Il peut facultativement (mais ce n'est pas la manière préférée) contenir une ligne commençant par runDetached=true. Si cette ligne est présente, l'extension s'exécutera de manière indépendante de KStars. Une fois démarrée, l'extension ne pourra pas informer de son état à Ekos. Cette option ne devrait être utilisée que par les extensions qui doivent continuer de tourner après la fermeture de KStars. L'extension doit également fournir sa propre interface utilisateur.

De plus, le fichier de configuration peut contenir n'importe quel autre paramètre que l'auteur de l'extension décide, ainsi que du texte libre.

  • Le fichier d'icône, si présent, doit être nommé de la même manière que l'exécutable avec l'extension appropriée pour le format de l'image. Les formats « jpg », « bmp », « gif », « png » et « svg » sont pris en charge. Cette icône, si fournie, sera utilisée dans la boite de sélection des extensions. Si aucune icône n'est fournie, une icône par défaut sera utilisée à la place.

Tous les fichiers de l'extension (exécutable, configuration et icône facultative) doivent être copiés dans le dossier de données de KStars, par exemple ~/.local/share/kstars/extensions.

Les extensions présentes qui ont un fichier de configuration valable et qui ont une version minimale de KStars pas plus élevée que l'installation courante seront détectées au démarrage d'Ekos. Si aucune extension valable n'est détectée, l'élément d'interface dédié aux extensions ne sera pas affiché du tout. Les éléments de l'extension dans l'interface utilisateur seront affichés dans une boîte avec son nom et son icône, ainsi qu'un bouton de démarrage/arrêt. Si l'extension échoue à se fermer dans les 10 secondes suivant le clic sur le bouton d'arrêt, celui-ci se réactivera comme un bouton d'abandon qui forcera la fermeture de l'extension. Seule une extension peut être utilisée en même temps.

Développement

La suite décrit les points importants pour les développeurs d'extensions.

  • Quelques sources d'extensions comprenant un exemple de squelette d'extension sont disponibles à l'adresse Extension de KStars sur GitHub.

  • Chaque extension doit vérifier l'existence et la validité du fichier de configuration. L'entrée minimum_kstars_version du fichier de configuration doit être vérifiée par rapport à une référence interne pour confirmer que ce fichier correspond aux exigences de l'extension. Voir l'exemple du fichier squelette.

  • La version de KStars est passée à l'extension comme « arg(1) » de l'appel à « QProcess ».

  • Toutes les interactions avec KStars / Ekos / INDI doivent être réalisées grâce à l'interface D-Bus. Voir l'exemple du squelette. Des outils utiles pour interroger, surveiller et comprendre D-Bus incluent D-Feet et Bustle.

On pourrait avoir l'impression au début que l'utilisation du système d'adaptateurs de Qt pour D-Bus serait bien plus simple que l'utilisation directe de l'Interface/Messages de Qt D-Bus et KStars fournit les définitions « xml » nécessaires. Toutefois, il y a actuellement une utilisation importante de types personnalisés dont la définition est combinée avec d'autres informations dans les sources de KStars. Cela conduit à un grand ensemble de fichiers de KStars qui nécessite une inclusion depuis l'extension afin de pouvoir utiliser les adaptateurs de Qt pour D-Bus. Ce problème sera, espérons-le, résolu dans le futur.