3-14. La commande de traitement par lots
3-14-1. Qu'est-ce qu'un traitement par lots sous MUSTIG ?
3-14-2. Créer un script batch
3-14-3. La syntaxe générale
Changer un paramètre d'entrée
Calculer une fenêtre image
Les boucles
3-14-4. Exemple de script batch
3-14-5. Liste complète des commandes du traitement par lots
3-14-1. Qu'est-ce que le traitement par lots (ou Batch) ?
Quand vous devez effectuer les mêmes opérations sur des ensembles de données multiples, il est fastidieux et inefficace de le faire un par un. MUSTIG permet de définir un script pour exécuter ces opérations répétitives automatiquement. Les scripts de batch MUSTIG sont capables de changer les paramètres d'un algorithme automatiquement, réinitialiser, calculer et imprimer des fenêtres image (voir les fenêtres Image), et changer entre processeurs DSP et PC (version DSP seulement). Le script du traitement par lots peut appeler plusieurs programmes MUSTIG si nécessaire.
3-14-2. Créer un script de Batch
Le module du batch est dans la boîte " <-> " dans la bibliothèque. Glissez-le dans votre fenêtre du programme.
Cette boîte du Batch peut être renommée comme toute autre macro pour lui donner un nom plus explicite (Optimisation des paramètres, acquisition des données, etc.). Vous pouvez effacer aussi le nom et coller une icône précédemment copiée dans le presse-papiers qui utilise un logiciel spécifique : cela permet de créer des boutons actifs personnalisés et d'ajouter une " touche professionnelle " à vos applications (PC seulement).
Si la boîte de Batch est renommée autoexec, elle est exécutée automatiquement quand le programme MUSTIG est ouvert. Cela permet de lancer une application automatiquement (par exemple une acquisition de données) en ouvrant le programme (les utilisateurs Windows doivent cliquer deux fois sur le programme de l'explorateur pour lancer l'application directement).
Ouvrez le module Batch avec un double clic : une fenêtre vierge apparaît. Majuscule+Ctrl+Clic dans cette fenêtre pour entrer en mode d'édition, et écrire le script du traitement par lots. Quand vous avez fini, cliquez n'importe où à l'extérieur de la fenêtre pour sortir du mode d'édition de texte.
La syntaxe du script est alors vérifiée par MUSTIG. Si des erreurs de syntaxe sont détectées, un message d'erreur est affiché.
Si une erreur se produit pendant que le script du Batch est exécuté (par exemple étiquette ou fenêtre image inconnue), le traitement par lots s'arrête et le point d'avancement est sélectionné dans la fenêtre du script du Batch.
Les données d'entrée (soit scalaire soit chaîne) qui pourront être changées par le script du traitement par lots doivent être étiquetées pour les distinguer (voir Étiqueter une borne). Le nom de l'étiquette est utilisé dans le script du traitement par lots pour faire référence à ces données d'entrée. Elle doit être unique.
La syntaxe générale pour changer une valeur d'entrée pendant le traitement par lots est :
"le nom d'étiquette" = valeur
Les changements relatifs peuvent aussi être faits utiliser les directives suivantes:
"le nom d'étiquette" + = increment_value
"le nom d'étiquette" - = decrement_value
"le nom d'étiquette" * = multiplicative_factor
"le nom d'étiquette" / = division_factor
Seulement les fenêtres image peuvent être traitées pendant un traitement par lots. La syntaxe générale pour lancer une commande est :
COMMANDE " Nom de la fenêtre image "
Une liste complète d'ordres est disponible (voir liste complète des ordres du traitement par lots) ou dans l'aide en ligne du module du batch (raccourci Alt+H).
Quand vous devez étudier l'effet d'une grande gamme de paramètres, c'est souvent très efficace d'écrire des boucles. La syntaxe générale pour les boucles dans les scripts de traitement par lots MUSTIG est:
Number_of_loops {
….
les ordres
…
}
3-14-4. Exemple de script de traitement par lots
Le programme simple suivant produit un signal eu bruit blanc de longueur donnée et calcule l'énergie du signal (somme des échantillons élevés au carré) :
Une fenêtre image a été mise dans la fenêtre du programme pour y rassembler les résultats les plus intéressants et renommée Ma fenêtre image. L'intérieur de cette fenêtre image pourrait ressembler à ceci :
N.B. : En fait la fenêtre image a une taille par défaut égale à la dimension d'une feuille de papier A4 (voir les fenêtres Image). Seulement la partie la plus intéressante de la fenêtre image est montrée.
Maintenant, nous voulons étudier l'effet de la longueur du signal sur l'estimation de l'énergie globale. Pour faire ceci, nous devons exécuter le programme avec plusieurs valeurs de la longueur du signal, par exemple 100, 200,…, 1000.
Au lieu d'exécuter le programme dix fois vous-mêmes, allez chercher un module Batch de la Bibliothèque, cliquez deux fois pour l'ouvrir, et entrez le scrip^t suivant:
"Longueur signal" = 0
10 {
"Longueur signal" + = 100
CALCULER " Ma fenêtre image "
IMPRIMER " Ma fenêtre image "
}
Cliquez à l'extérieur de la fenêtre pour sortir du mode d'édition de texte. Fermez la fenêtre du script et réglez les Paramètres d'impression dans le menu Fichier.
Cliquez à droite sur le module Batch pour le lancer : la fenêtre du scénario et la fenêtre image à calculer s'ouvrent, les dix simulations sont effectuées rapidement et les dix feuilles de résultat sont envoyés à l'imprimante automatiquement.
3-14-5. Liste complète des ordres de traitement par lots
Commande et exemple |
Action |
Choix d'un programme MUSTIG |
|
OUVRIR "Nom de fichier.MTG " |
Ouvre un programme MUSTIG. Pas nécessaire si le module Batch est dans votre programme et si vous n'appelez pas d'autres programmes. |
FERMER "Nom de fichier.MTG " |
Ferme un programme MUSTIG |
SELECTIONNER "Nom de fichier.MTG " |
Sélectionne un programme MUSTIG (utile si plusieurs programmes MUSTIG sont utilisés pour le traitement par lots) |
Réglage des paramètres d'entrée |
|
"Nom d'étiquette" = Valeur |
Change la valeur d'une entrée étiquetée scalaire ou module de texte |
"Nom d'étiquette" + = Valeur "Nom d'étiquette" - = Valeur "Nom d'étiquette" * = Valeur "Nom d'étiquette" / = Valeur |
Incrémente un module d'entrée scalaire étiqueté Décrémente un module d'entrée scalaire étiqueté Multiplie un module d'entrée scalaire étiqueté Divise un module d'entrée scalaire étiqueté |
Gestion des fenêtres image |
|
INITIALISER "Nom de la fenêtre image" |
Réinitialise tous les calculs et modules à l'intérieur de la fenêtre image spécifiée |
CALCULER "Nom de la fenêtre image" |
Calcule une fenêtre image |
IMPRIMER "Nom de la fenêtre image" |
Imprime une fenêtre image (assurez-vous que les paramètres d'impression sont corrects avant de lancer le traitement par lots) |
Gestion du temps |
|
DEMARRER " 1H20M " |
Démarre le traitement par lots au temps spécifié |
ATTENDRE " 1M " |
Attend le temps spécifié (une minute ici). Peut être utile si vous avez peur de surcharger votre spooler d'imprimeur, ou si vous voulez voir les résultats avant qu'ils soient envoyés à l'imprimante. |
La gestion DSP |
|
DSP " ON " |
Tous les nouveaux calculs seront faits sur le processeur DSP (version DSP de MUSTIG seulement) |
DSP " 0FF " |
Tous les nouveaux calculs seront faits sur le processeur PC |
Les boucles |
|
N { Command 1 Command 2 … } |
Répète le même ensemble d'instructions N fois |