LIBQM et le projet AudeLA


AudeLA est un système logiciel qui facilite l'exploitation des caméras électroniques en observation astronomique. Il a été écrit par Alain Klotz et Denis Marchais de l'Association AUDE (Association des Utilisateurs de Détecteurs Electroniques) dans le cadre du projet AUDINE.

Au centre de AudeLA on trouve le langage de script Tcl/Tk. Ce langage est très répandu dans le milieu Unix et c'est notamment une bonne place dans le secteur de la Recherche. Aujourd'hui il est possible d'exécuter des scripts Tcl/Tk depuis de très nombreuses plate-formes : Linux, Windows, Mac... C'est aspect "universel" est extrêmement réjouissant car un script et une interface écrit dans ce langage tournerons à l'identique et avec le même aspect quelque soit le système d'exploitation de l'ordinateur.

Le langage de script Tcl (et son extension graphique Tk) est exceptionnellement puissant tout en restant simple à apprendre. Autre avantage, et non des moindres, il est possible de télécharger gratuitement depuis le Web les outils permettant d'exécuter des scripts Tcl/Tk. La documentation  à propos de ce langage est du reste très abondante et il y a de nombreuses FAQ.

Il est possible d'écrire de véritables et puissantes applications graphiques à partir de Tcl/Tk. Avec un peu de dextérité de la part du programmeur, rien ne peu distinguer l'aspect d'une application Tcl/Tk d'une application Windows écrite avec une suite de développement payante. Il est même possible de télécharger (toujours gratuitement) des packages qui offrent des performances inconnues dans le monde Windows (par exemple BLT pour le tracé de courbes et la visualisation de données ou encore des libraires permettant d'utiliser aisément le protocole TCP/IP et d'écrire ainsi des serveurs).

Un des aspects remarquables de toutes ces applications téléchargables est qu'elles sont aisément modifiables (il suffit pour cela d'un simple traitement de texte, genre WordPad).

Pour s'imprégner de la philosophie Tcl/Tk le mieux est de ce rendre sur le site officiel Tcl, de charger le package (ce n'est pas gros et cela ne posera aucun problème à votre système). Il est recommandé à ce stade d'exécuter la petite démonstration fournie avec le kit. Quand on comprend que tout ce qui se déroule sous vos yeux provient d'un code interprété et qu'il suffit d'un traitement de texte pour le générer, généralement on est conquis. Et vous n'avez pas déboursé un sous !

Tcl/Tk Resources on the Web 

Voici d'autres liens utiles concernant Tcl/Tk : 

Tcl Developer Xchange  (vous pouvez télecharger ici une version particulière de Tcl) 
Tcl/Tk 8.0 manual 
Tcl/Tk 8.0 manual (2)
Tcl WWW Info 
How to use C with Tcl 
Simple embedding example 
Writing C extensions To Tcl

Audela est une extension de Tcl/Tk, c'est à dire qu'il ajoute de nouvelles fonctions au langage de script. Ces fonctions ont été prévu pour faciliter l'écriture de logiciels de traitement d'images ou encore de pilotage de télescope ou tout autre équipement astronomique. Cette boite à outils offre des capacités de développement pratiquement infinies, même dans le cadre d'une exploitation pointue comme l'automatisation intégrale des acquisitions ou la mise en réseau de plusieurs ordinateurs pour distribuer des taches. Audela est fourni avec l'application graphique AUDACE (entièrement écrite en Tcl/Tk), qui est un véritable logiciel d'acquisition d'images et de traitement écrit en Tcl/Tk. AUDACE est en constante évolution, et vous même, vous pouvez le modifier pour l'adapter à vos propres besoins (vous avez la liberté d'ajouter des menus déroulant, d'ouvrir de nouvelles fenêtres, etc).

A signaler aussi que l'équipe Audela a développé un protocole de communication (ASTP) et une interface logicielle qui permettent d'exploiter les possibilités de Audela depuis n'importe quel logiciel écrit en langage C ou en VisualBasic par exemple.

La librairie LIBQM, qui est l'objet de ces pages, montre un autre facette de l'utilisation de Tcl/Tk et du système Audela. LIBQM est une librairie de fonctions écrites en langage C (mais il aurait été possible d'utiliser le Pascal par exemple). Un langage compilé à l'avantage de permettre une exécution très rapide du code. On montre dans ces pages comment écrire une librairie de fonctions qui peuvent être appelées comme de nouveaux mots clefs du langage Tcl/Tk. C'est un peu comme si vous aviez la possibilité de re-écrire la fonction PRINT du langage Basic. L'écriture d'une librairie C pour Tcl/Tk n'est probablement pas la direction qu'il faut prendre pour faire les premières armes dans ce langage de script (je rappelle que Tcl/Tk est déjà extraordinairement riche en lui-même et de plus, le système Audela de base est fournit avec énormément de fonctions spécifiques à l'astronomie). La conception d'une librairie est une opération relativement avancée, mais je vais essayer dans ces pages, au travers de quelques exemples, de montrer que la difficulté est très loin d'être insurmontable (c'est même presque basique pour qui a déjà programmé dans un langage compilé).

Dans l'état, LIBQM est en cours de développement et n'est pas immédiatement disponible. A terme elle devrait contenir la totalité des fonctions que j'ai pu écrire dans QMiPS32 ou IRIS. Avec cette librairie, mais aussi avec les fonctions puissantes déjà disponibles dans le système Audela, ou dans les fonctions à venir qui seront de votre cru, il sera possible d'écrire des outils particulièrement efficaces d'observation du ciel, exactement comme vous les rêver.

A vous de développer d'autres libraires avec vos algorithmes préférés, en ajoutant par exemple le
driver de lecture de votre caméra favorite ou la procédure de pilotage de votre télescope. Et faites en profiter la communauté des astronomes amateurs : distribuez tout cela gratuitement !

Audela est un kit logiciel, tout comme Audine est un kit de caméra CCD.

Bonne découverte et amusez-vous bien !

Christian Buil
christian.buil@wanadoo.fr