Audela
Audela

Règles à respecter lors de la création d'un script ou d'un panneau

Règles à respecter lors de la création d'un script ou d'un panneau pour une parfaite intégration dans Audace

1. Introduction

Audela, et son interface graphique Audace sont des logiciels ouverts, qui permettent à tout le monde d'ajouter ou de personnaliser toutes les fonctions possibles et imaginables. Mais l'expérience nous a montré que pour une parfaite intégration dans le logiciel, plusieurs règles de programmation sont à respecter. Ce document a pour objet de lister, expliquer et décrire ces règles. Il doit servir aux programmeurs lors de leurs développements. Il est destiné aussi à valider de nouveaux scripts avant leur intégration dans une prochaine révision de Audela. Si donc votre application est destinée à faire partie intégrante de Audela, nous vous invitons à respecter scrupuleusement ces règles. Cette contrainte n'a bien sûr aucun caractère obligatoire si votre développement est limité à un usage personnel. Elle reste néanmoins utile pour éviter les surprises...

On peut décomposer les règles d'intégration en plusieurs catégories :

Ce document est appelé à évoluer en fonction des expériences des uns et des autres : N'hésitez pas à faire des propositions d'amélioration à l'équipe de développement Audela !

2. Structure générale

2 - 1 Création d'une nouvelle application

Un script peut prendre principalement deux formes dans Audela :

Si vous souhaitez faire profiter tous les utilisateurs Audela de votre travail, nous vous invitons alors à faire enregistrer votre travail sur le site web Audela. Cela évitera à d'autres personnes de partir dans un développement similaire, et de faire converger nos efforts !

2 - 2 Convention sur les noms et les répertoires

Dans le cas d'un script simple, la seule règle à respecter est de mettre votre fichier .tcl dans le répertoire "scripts" de Audela.

Dans le cas d'un panneau Audace, il vous faut définir deux noms : Le premier sera celui du script lui-même, et le second sera celui affiché dans le menu Panneau (ce sera aussi le titre du panneau). Dans la mesure du possible, nous vous invitons à utiliser un seul nom pour ces deux fonctions, mais ce n'est pas toujours évident du fait du peu de place disponible pour le titre du panneau... Faisons l'hypothèse que votre fichier s'appelle "mon_fichier_a_moi.tcl", et que le titre de votre application est "MonFich". Dans ce cas, les différents fichiers utilisés par votre application devront respecter les règles suivantes :

Le fichier mon_fichier_a_moi.tcl sera écrit uniquement avec des minuscules, et sera installé dans le répertoire "[...]/audela/audace/panneau".

Si vous avez besoin de fichiers complémentaires (par exemple, un fichier de configuration), vous le placerez dans un sous-répertoire ayant le même nom que votre fichier. Dans notre exemple, il s'agira du répertoire [...]/audela/audace/panneau/mon_fichier_a_moi.

Dans ce répertoire, le cas échéant, le fichier de configuration aura le même nom que votre fichier de script, mais avec l'extension .ini : Dans notre cas, il s'agira de mon_fichier_a_moi.ini . Il est impératif de ne pas utiliser le nom "config.ini" qui est réservé au fichier de configuration de l'application Audace !

Dans la mesure du possible, tous les autres fichiers complémentaires dont vous aurez besoin devront respecter cette même règle de nom (même nom que le fichier de script). Ceci facilitera son identification ultérieure.

Si vous travaillez avec un fichier de log (un fichier généré par votre application, et qui enregistre des résultats sur le disque), son nom commencera par le nom du fichier .tcl, et aura cette fois l'extension .log. En général, le nom du fichier contient aussi la date, voire l'heure de sa création, pour éviter l'écrasement quand on lance l'application plusieurs fois. Pour notre exemple, on peut imaginer un fichier de log crée le 22 mai 2002 - Il pourrait alors porter le nom "mon_fichier_a_moi_20020522.log". En général, ce fichier est écrit dans le répertoire image. Ceci n'est qu'un exemple, la seule convention à respecter est que le nom du fichier de script apparaisse clairement dans le nom du fichier de log.

Si vous faites un fichier de documentation (nous vous y invitons fortement !), il devra être au format .pdf (l'équipe Audela saura vous aider si vous ne savez pas générer ce format !), et son nom sera celui du TITRE du panneau (le nom qui apparaît dans le menu déroulant 'Panneau'). En effet, il est important que l'utilisateur trouve le fichier d'aide sous le même nom que le panneau sur lequel il cherche de l'aide... Dans notre cas, le fichier d'aide sera MonFich.pdf. Ce fichier sera installé dans le répertoire doc_pdf de Audace, pour être accessible depuis le menu Aide de Audace.

Il y a un dernier fichier important à prendre en compte : Celui des captions (fichier contenant toutes les chaînes de caractères utilisées par votre application, et traduites dans toutes les langues de Audace). Ce fichier, installé dans le répertoire [...]audela/audace/caption commencera par cap_, et se terminera par le nom du fichier de script. Il s'agit d'un fichier .tcl. Avec notre exemple, cela donne "cap_mon_fichier_a_moi.tcl". Nous reviendrons sur ce fichier dans la partie "Internationalisation" du présent document.

3. Variables générales

3 - 1 Variables globales Audace

Plusieurs variables générales sont disponibles pour une bonne intégration de votre script. Il s'agit de variables que vous pouvez lire sans problème, mais en aucun cas, vous ne devez en modifier le contenu sauf en parfaite connaissance de cause : Vous risqueriez des effets inattendus dans le déroulement du reste du programme. Il s'agit des variables suivantes :

Toutes ces variables sont initialisées à l'installation ou au lancement de Audela, et permettent de pointer sur les bons répertoires, quelque soit le répertoire d'installation de Audela.

3 - 2 Format des fichiers d'images (extension .fit ou .fit.gz)

Plusieurs format de fichiers d'images sont supportés par Audela, selon qu'ils sont compressés ou non. Si vous avez besoin, dans votre script de générer des noms complets de fichiers, vous devez respecter l'extension du nom de fichier. Elle est accessible par la variable conf(extension,defaut). A la création d'un nouveau buffer, vous devez attribuer cette valeur au buffer :

buf$audace(bufNo) extension : Pour l'extension .fit

et

[buf$audace(bufNo) extension].gz : Pour l'extension .fit.gz

Attention, vous devez déclarer dans le script les variables globales audace, et le cas échéant conf.

3 - 3 Autres règles

Le numéro des buffers de Audace est géré par l'application. Pour permettre les évolutions futures, vous ne devez pas mettre dans vos scripts des commandes telles que « buf1 etc. » mais vous devez les remplacer par la forme suivante :

buf$audace(bufNo)

en ayant déclaré « global audace » au préalable.

Dans le même esprit, vous devez proscrire les commandes « cam1 etc. » mais vous devez les remplacer par la forme suivante :

cam$audace(camNo)

en ayant déclaré « global audace » au préalable.

Toujours dans la même veine, vous devez proscrire les commandes « tel1 etc. » mais vous devez les remplacer par la forme suivante :

tel$audace(telNo)

en ayant déclaré « global audace » au préalable.

Enfin, vous devez proscrire les commandes « visu1 etc. » mais vous devez les remplacer par la forme suivante :

visu$audace(visuNo)

en ayant déclaré « global audace » au préalable.

. Internationalisation

Audela a été prévu pour travailler avec plusieurs langues. Pour que cela puisse fonctionner dans tous les cas, il a été défini que toutes les chaînes de caractères générées par le programme sont écrites dans des variables caption(mon_fichier_a_moi,xxx). Ces variables sont rassemblées dans un fichier cap_mon_fichier_a_moi.tcl (le nom est bien sûr à adapter en fonction de votre fichier), qui est appelé au début du script (voir plus haut la partie "convention sur les noms et les répertoires" pour le nom de ce fichier et son répertoire d'installation). Le fichier cap_mon_fichier_a_moi.tcl doit être installé dans le répertoire audace/caption.

Le fait de mettre les captions dans un fichier à part simplifie le travail de traduction (comme il est peu probable que vous parliez toutes les langues de Audela, le fichier cap_mon_fichier_a_moi.tcl pourra être transmis à plusieurs traducteurs de l'équipe Audela). Le contenu du fichier cap_mon_fichier_a_moi.tcl aura la structure suivante :

# 
    # Fichier : cap_audela.tcl 
# Date de MAJ : 13 Decembre 2002
#
#=========================================================================
# Début de la déclaration
des textes localisés (internationalisation) 
#=========================================================================
global caption
# *************** Version anglaise ****************************
    set caption(audela,main_title) "Audela:
    Interface Selection" 
    set caption(audela,description) "Choose
    the interface you want to use" 
    set caption(audela,soft1) "Tutorial" 
    set caption(audela,soft2) "Audace" 
    set caption(audela,launch) "Run" 
    set caption(audela,dirtcl) "../test
    test.tcl" 
    set caption(audela,direct_audace) "Do
    not display this interface any more."
# *************** Version française*************************** 
 if { [ string compare $langage "french" ]
 == "0" } {
set caption(audela,main_title) "Audela : Choix de l'interface utilisateur" 
     set caption(audela,description) "Choisissez l'interface que vous voulez utiliser" 
     set caption(audela,soft1) "Tutorial" 
     set caption(audela,soft2) "Audace" 
     set caption(audela,launch) "Lancer" 
     set caption(audela,dirtcl) "../test
     test.tcl" 
     set caption(audela,direct_audace) "Ne plus afficher cette interface."
# *************** Version italienne************************** 
} elseif { [ string compare $langage "italian" ]
== "0" } {
set caption(audela,main_title) "Audela: Scelta dell'interfaccia utente" 
     set caption(audela,description) "Scegliere l'interfaccia d'uso" 
     set caption(audela,soft1) "Tutorial" 
     set caption(audela,soft2) "Audace" 
     set caption(audela,launch) "Esegui" 
     set caption(audela,dirtcl) "../test
     test.tcl" 
     set caption(audela,direct_audace) "Non visualizzare piu` questa interfaccia."
# *************** Version espagnole*************************** 
   } elseif { [ string compare $langage "spanish" ]
  == "0" } {
 set caption(audela,main_title) "### Audela : Choix de l'interface utilisateur" 
     set caption(audela,description) "### Choisissez l'interface que vous voulez utiliser" 
     set caption(audela,soft1) "### Tutorial" 
     set caption(audela,soft2) "### Audace" 
     set caption(audela,launch) "### Lancer" 
     set caption(audela,dirtcl) "../test
     test.tcl" 
     set caption(audela,direct_audace) "###  Ne plus afficher cette interface."
# *************** Version allemande*************************** 
   } elseif { [ string compare $langage "german" ]
   == "0" } {
 set caption(audela,main_title) "Audela: Benutzer Schnittstelle Wahl" 
     set caption(audela,description) "Wählen sie die Schnittstelle die sie wünschen" 
     set caption(audela,soft1) "Abstützung" 
     set caption(audela,soft2) "Audace" 
     set caption(audela,launch) "Ausführen" 
     set caption(audela,dirtcl) "../test
     test.tcl" 
     set caption(audela,direct_audace) "Diese Interface nicht mehr anzeigen."
}
#========================================================================= 
# Fin de la déclaration
des textes localisés (internationalisation) 
#=========================================================================

Si vous ne connaissez pas la traduction de vos messages dans l'une ou l'autre langue, laissez le message dans votre langue natale, en le faisant précéder de ### pour aider leur détection par les traducteurs (à titre d'exemple, vous constaterez ci-dessus que la partie espagnole est en attente de traduction). Bien sûr, dans le corps de votre script, vous devrez lancer au tout début la lecture de ce fichier de captions (commande du type "source [file join $audace(rep_caption) cap_mon_fichier_a_moi.tcl]" ), et vous ne devrez utiliser que les variables contenant les captions (par exemple : Message console $caption(audace,votre_fonction,titre) ).

| English Version | Mailing List Audela | ©2004 Audela | Design TechnoSpeak