MESSAGES d'ERREUR et TRUCS de DÉBOGUAGE

Table des matières

Les différents types d'erreurs

Les erreurs de l'éditeur

Les erreurs du compilateur

Les erreurs à l'exécution

Erreurs dans les routines externes

Localiser une erreur dans le graphe MUSTIG

Déboguer une erreur en utilisant le mode Sonde

Liste des messages d'erreur

2 bornes de sortie reliées par bifurcation

Un module ou une boîte doivent être sélectionnés en premier

Une fenêtre image doit rester au premier niveau

Code trop grand

Compilateur saturé : structure trop complexe

Mémoire de données saturée

Type de données non prévues pour ce module (liste de types)

Fin de fichier

Le sous-programme externe n'a pas été trouvé

Le fichier n'a pas été trouvé

En premier sélectionnez une borne

Fonction non prévue

Hiérarchie non respectée pour le faisceau

Le format de l'entrée est incorrect

Le report n'est pas relié

Longueur de variable interdite

Le sous-programme de bibliothèque n'a pas été trouvé

Mélange de signaux de caractéristiques différentes selon (nom variable)

La licence Mustig n'existe pas sur cette machine

Le nombre de bornes est incorrect

Nombre de variables ou nom de variable incorrect

Seulement une variable infinie (longueur = -1) est permise

Erreur d'ouverture

Opération non supportée sur une variable de longueur dynamique

Opération sur une variable qui contrôle la longueur d'une autre variable du même signal (nom variable)

Borne non connectée

Erreur de lecture

Respectez la hiérarchie pour les images

Longueur du signal non égale à une puissance de 2 (nom variable)

Longueur du signal non égale à une puissance de 2 + 1 (nom variable)

Erreur de structure

Structure non calculable

Erreur de syntaxe

La boîte doit avoir une seule borne (d'entrée)

La bibliothèque ne peut pas être sauvegardée de cette manière (FileName.bib)

Le signal ne dépend pas de la variable (nom variable)

Les définitions de variables doivent être statiques

Cette borne doit être isolée avec un module " = "

Trop de fenêtres

On essaye de faire une boucle sur un signal ayant une variable dont la longueur dépend de la variable de boucle

Code inconnu

Cercle vicieux

Erreur d'écriture

LES TRUCS DE DEBOGUAGE

Certains fils disparaissent, le graphe semble inconsistent

Je ne peux imprimer aucune fenêtre Mustig

Le Copier/Coller ne travaille pas correctement avec les autres applications

Toutes les fenêtres de toutes les macros s'ouvrent en même temps !

Les résultats ne se mettent pas à jour

Tous les résultats graphiques sont en noir et blanc

Je ne peux pas faire glisser un module d'une fenêtre Mustig

Le fichier des options n'est pas sauvegardé quand on sort de Mustig

Les raccourcis du programme (menu fichier) ne marchent pas

L'option que j'ai mise n'est pas prise en considération, ou n'est pas acceptée

Il y a des artéfacts graphiques dans les fenêtres MUSTIG

Seulement une portion de courbe est affichée

  

Les MESSAGES d'ERREUR et les TRUCS de DÉBOGUAGE

Les différents types d'erreurs

Trois types d'erreur sont possibles :

Les erreurs de l'éditeur

Si une opération invalide est exécutée par l'utilisateur (par exemple relier deux sorties ensemble), l'erreur est immédiatement récupérée par MUSTIG et un message d'erreur est affiché.

Si l'opération est valide mais ne peut pas être exécutée (par exemple glisser une image d'un module dans un panneau trop petit pour la contenir), un signal sonore se produit et l'opération est simplement annulée.

Les erreurs du compilateur

La plupart des erreurs du compilateur se produisent quand vous avez programmé une opération invalide, par exemple si vous ajoutez deux signaux qui n'ont pas les mêmes attributs, ou si vous reliez deux sorties ensemble.

Les erreurs du compilateur sont détectées généralement quand vous lancez une simulation. Cependant, les erreurs du compilateur qui mènent à un graphe contradictoire (par exemple deux sorties reliées ensemble, erreur dans un module Formule) sont détectées immédiatement.

Les erreurs à l'exécution

Elles sont susceptibles de se produire à l'exécution. Voir la liste des messages d'erreur pour une liste complète.

Erreurs dans les routines externes

Soyez conscient que MUSTIG ne vérifie que son propre code ! Si une erreur se produit dans une routine externe interfacée, elle produira des résultats imprévisibles et pourrait même planter l'ordinateur. Vous devez donc vous assurer de vérifier votre code source avec soin.

Le cas le plus fréquent d' " erreurs fatales mystérieuses " dans les routines externes est une faute de segmentation ou d'allocation mémoire qui se cache quelque part dans le code source.

Notre conseil : Protégez votre code (au moins les versions prototypes) en ajoutant des routines de vérification supplémentaires et retournez un message d'erreur à MUSTIG à travers le pointeur de chaîne r quand une erreur est détectée. En particulier, la valeur de retour de toute fonction d'allocation mémoire ou routine système devrait toujours être testée.

Localiser une erreur dans le graphe MUSTIG

Quand MUSTIG détecte une erreur, la compilation ou l'exécution du programme s'arrête et le module dans lequel les erreurs se sont produites est montré avec un cadre rouge. Cliquez sur le bouton OK dans la fenêtre de sortie du message d'erreur pour commencer à déboguer votre application.

Si l'erreur est localisée à l'intérieur d'une macro, la macro est montrée avec un cadre rouge. Vous pouvez alors cliquer deux fois sur cette macro, et puis sur l'autre macro encadrée de rouge - jusqu'à ce que vous atteigniez finalement le module erroné.

Vous pouvez utiliser aussi le raccourci Alt+I pour ouvrir les macros sélectionnées successivement. Utilisant Ctrl+I au lieu d'Alt+I ferme la fenêtre mère à chaque fois qu'une macro est ouverte (Windows seulement).

Une fois l'erreur trouvée, vous pouvez essayer de la résoudre en utilisant les indications ci-dessous.

Dépanner une erreur en utilisant le mode Sonde

Une fois que la portion défectueuse du graphe a été localisée, si l'erreur n'est pas évidente, vous pouvez vouloir en apprendre plus sur les données à ce point pour détecter l'erreur. Une bonne solution est d'utiliser le mode Sonde.

Le mode Sonde marche avec tout module, macro ou boîte qui a seulement une borne d'entrée et aucune borne de sortie. Tout groupe de modules peut être assemblé en une boîte qui a seulement une borne d'entrée et aucune borne de sortie, et puis utilisé en mode Sonde. La boîte ne doit pas être reliée au graphe.

Les boîtes d'exemple suivantes conviennent pour sonder le graphe :

Visualise le type de données et les variables (nom et attributs) portées par le fil auquel le module est relié (voir Obtenir l'information générale au sujet des variables) :

Cela permet de détecter des conflits entre les attributs (longueur, origine, pas d'échantillonnage, etc) des variables à plusieurs points du graphe.

Visualise graphiquement un vecteur selon la variable t (voir Afficher des signaux 1D)

Visualise une matrice, ou un groupe de signaux 1D, selon les deux variables t et x (voir Afficher des signaux 2D)

Calcule et affiche le spectre d'un signal selon la variable t .

 

Assurez-vous que la boîte n'est pas reliée au graphe, sélectionnez-la en cliquant dessus, et alors lancer la commande Calculs / Sonder (raccourci Alt+R). Le curseur de la souris se change en sonde. Cliquez sur un fil : la boîte Sonde sélectionnée est reliée au graphe implicitement et calculée. Cliquez sur un autre fil pour voir d'autres résultats.

Si la boîte Sonde utilise une variable ou plus, le signal sur le fil auquel la sonde est branchée doit dépendre de ces variables.

Tapez encore Alt+R pour quitter le mode Sonde.

Un Alt+R subséquent sans boîte sélectionnée fait entrer en mode Sonde avec comme sonde la dernière boîte Sonde utilisée.

Liste de messages d'erreur

2 bornes de sortie reliées par bifurcation

Signification : Deux bornes de sortie sont reliées sans aucun opérateur intermédiaire, le graphe est donc contradictoire.

Solution : Déconnectez une borne, ou ajoutez un opérateur.

Un module ou une boîte doivent être sélectionnées en premier

Signification : L'ordre que vous avez lancé (ouvrir, sonder, exécuter,...) opère sur une macro. Cette macro doit d'abord être sélectionnée en cliquant dessus.

Solution : Cliquez sur la macro sur laquelle l'ordre doit être exécuté et relancez l'ordre.

Une fenêtre image doit rester au premier niveau

Signification : Vous avez essayé de glisser une macro Image MUSTIG dans une fenêtre image ou dans une macro. Ce n'est pas possible.

Solution : Les macros Image MUSTIG doivent être glissées dans la fenêtre principale du programme et rester là. Elles ne peuvent pas être copiées ou déplacées dans des macros, des fenêtres graphiques ou des fenêtres Image.

Code trop grand

Signification : Le calcul des résultats exige une table de code plus grande que celle allouée par MUSTIG.

Solution : Cliquez sur la fenêtre principale du programme. - Lancez la commande Calculs / Réinitialiser la clôture - Augmentation la valeur dans le champ Edition / Options / Calculs / Dimension du code programme (Kilo-octet) . - Essayez de relancer votre programme. - Si nécessaire, sortez de MUSTIG, relancez-le et augmentez la valeur dans le champ Edition / Options / Calculs / Dimension du code programme (Kilo-octet) avant de lancer votre programme.

Compilateur saturé : structure trop complexe

Signification : Cette erreur dénote un débordement dans le tas interne du compilateur.

Solution : S'il existe une optionEdition / Options / Calcul / Taille du stack, essayez augmenter sa valeur. Autrement rapportez cette erreur à LIS-INPG.

Mémoire des données saturée

Signification : La taille de mémoire allouée pour traiter les données n'est pas assez grande. Cette erreur peut se produire aussi si vous essayez d'exécuter sur un signal infini un algorithme qui ne peut pas marcher en temps réel, comme dans l'exemple ci-dessous (dans ce cas il n'y a aucun remède, parce que l'algorithme ne peut pas travailler juste!).

Solution : Suivez cette procédure pour augmenter le montant de mémoire de données :

Type de données non prévues pour ce module (liste de types)

Signification : Le module montré avec un cadre rouge n'est pas capable de manpulier les données à l'entrée. La liste après le message d'erreur donne les types rencontrés sur les bornes du module : comparez-les aux types attendus indiqués dans l'aide en ligne du module (Alt+H) pour localiser le mauvais type.

Les cas les plus communs sont :

  1. l'envoi de données complexes à un module qui ne peut traiter que des données réelles,
  2. l'envoi dedonnées réelles à un module qui exige une valeur entière (par exemple un module logique)
  3. l'envoi de données de mauvaise dimension (R8 au lieu de R4, I4 au lieu d'I2, etc)

Solution :

  1. Utilisez la macro VisuC/t pour regarder des données complexes, ou les transformer dans données réelles en utilisant un des modules suivants disponibles dans la section Complexe de la Bibliothèque :
  2. Sélectionne la partie réelle

    Sélectionne la partie imaginaire

    Sélectionne le module en prenant la représentation conventionnelle [Module, Phase] de nombres complexes.

    Sélectionne le module (module de la section Opérations Élémentaire)

    Sélectionne la phase en prenant la représentation conventionnelle [Module, Phase] de nombres complexes.

    Construit des données complexes à partir de données réelles.

     

  3. Insérez un module Fix (de la section Opérations Élémentaire de la Bibliothèque) pour convertir les données réelles en données entières sur 4 octets
  4. Insérez un module Fix, Fix2, Fix1 ou Float, Float8 (de la section Opérations Élémentaire de la Bibliothèque) pour changer la dimension des données

Fin de fichier

Signification : Vous essayez de lire des données au delà de la dimension du fichier.

Solution : Vérifiez votre programme : dimension des données, dimension et nombre de blocs de données. Le module Nbytes? dans la section Fichiers / Modules de base de la Bibliothèque retourne la dimension d'un fichier (en octets).

Le sous-programme externe n'a pas été trouvé

Signification : Votre programme exige une routine externe interfacée qui n'a pas été trouvée par MUSTIG.

Solution : Ajoutez le path correct dans le menu Edition / Options / Chemins (bonne colonne). Les boutons gris sur la gauche permettent de se déplacer dans les répertoires pour localiser la routine manquante : cliquez sur tout fichier dans le répertoire pour ajouter le chemin correspondant à la liste.

Vous pouvez indiquer aussi le nom complet de la routine (par exemple C:/Mustig/Custom/MyRoutine.dll) dans la boîte Extern dans votre programme MUSTIG, ou copie votre sous-programme dans le répertoire Mustig et / ou le répertoire qui contient votre graphe MUSTIG.

Le fichier n'a pas été trouvé

Signification : Votre programme exige un fichier de données, mais ce fichier de données ne peut pas être trouvé. MUSTIG ouvre une fenêtre de dialogue qui vous permet de regarder les répertoires et sélectionner le fichier de données correct. Si vous sélectionnez l'option Annuler, aucun fichier de données n'est sélectionné et cette erreur se produit.

Solution : Sélectionnez un fichier de données correct dans la fenêtre du dialogue. - Ou ajouter le chemin correct dans le menu Edition / Options / Chemins (bonne colonne). Les boutons gris sur la gauche permettent de se déplacer dans les répertoires pour localiser la routine manquante : cliquez sur tout fichier dans le répertoire pour ajouter le chemin correspondant à la liste . Cliquez sur la case Utiliser les chemins de la recherche pour les fichiers de données.

Vous pouvez indiquer aussi le nom complet du fichier de données (par exemple C:/Data/dataFile.dat) dans le module de lecture fichier MUSTIG.

Sélectionnez d'abord une borne

Signification : Vous essayez d'exécuter une opération sur une borne (par exemple étiqueter la borne), mais aucune borne n'est sélectionnée.

Solution : Sélectionnez une borne, puis lancez l'ordre.

Fonction non prévue

Signification : Une fonction manque, ou vous essayez d'utiliser une fonction qui n'est pas disponible sur votre version de MUSTIG. Exemples:

Solution : Achetez la(les) option(s) appropriée(s). Si la fonction en question existe normalement sur votre machine, rapportez cette erreur à LIS-INPG.

La hiérarchie n'est pas respectée pour le faisceau

Signification : Vous utilisez les faisceaux incorrectement. Dans l'exemple ci-dessous, le faisceau de construction a deux bornes, alors que le faisceau de restitution a trois bornes : c'est contradictoire.

Solution : Changez votre programme pour utiliser correctement les faisceaux.

Le format d'entrée est incorrect

Signification : Le format des données de l'entrée n'est pas convenable pour ce module.

Solution : Vérifiez l'aide en ligne du module (raccourci Alt+H) pour savoir quels formats sont permis et corriger votre programme en conséquence.

Le report n'est pas relié

Signification : Un report esclave est utilisé dans le graphe MUSTIG, mais le report maître ne peut pas être trouvé. Les causes les plus fréquentes sont :

Cette erreur se produit aussi quand on utilise le module de l'interface souris Choix, si le nom dans les reports et le nom dans le module Étiquettes (à l'intérieur de la boîte d'interface) est différent. Ce processus est aussi sensible à la casse - et aux espaces - .

Solution : Vérifiez les noms dans les reports. Si ceux-ci paraissent strictement égaux, cherchez un signe espace caché dans les noms en déplaçant le curseur du texte dans le nom avec la flèche du clavier.

Longueur de variable interdite

Signification : La longueur d'une variable est zéro ou moins (-1 est permis)

Solution : Changez votre programme afin que la longueur des variables soit plus grande que zéro. Si la longueur est mise à -1, le signal est infini et la simulation est faite jusqu'au clic de l'utilisateur dans la fenêtre MUSTIG pour l'arrêter.

Le sous-programme de bibliothèque n'a pas été trouvé

Signification : Le programme exige une ou plusieurs macros (montrées en rouge) qui sont normalement prises dans une bibliothèque MUSTIG supplémentaire, mais cette bibliothèque ne peut pas être trouvée.

Solution : Si la bibliothèque manquante est une bibliothèque MUSTIG officielle (par exemple bibliothèque de synthèse du filtre, bibliothèque des Ondelettes,...) ou une bibliothèque personnalisée, ajoutez son chemin dans le menu Edition / Options / Chemins (bonne colonne). Les boutons gris sur la gauche permettent de se déplacer dans les répertoires pour localiser la bibliothèque manquante : cliquez sur tout fichier dans le répertoire pour ajouter le chemin correspondant à la liste .

Si cette erreur se produit alors que seulement la bibliothèque de base est exigée, vérifiez que les sous bibliothèques suivantes sont présentes dans le répertoire Mustig :

Ces quatre sous bibliothèques doivent être présentes. Quelques-unes ont pu être effacées ou ont pu être renommées par hasard, ou mal décompressées par le programme d'installation.

Les fichiers compressés se caractérisent par un signe soulignement (_) dans leur extension. Pour décompresser un fichier, déplacez-vous au répertoire approprié et tapez :

expand file.mt_ file.mtg

Le programme expand est installé dans le répertoire Mustig normalement.

Si aucune des sous bibliothèques n'a été décompressée (le programme d'installation a avorté ou est défectueux), lancez le programme recuprep.exe. Un traitement batch est créé : lancez-le pour décompresser tous les fichiers.

Mélange de signaux de caractéristiques différentes selon (nom variable)

Signification : Vous essayez d'ajouter, soustraire, multiplier ou diviser deux signaux selon la même variable, mais ayant une longueur différente : c'est impossible.

Solution : Changez votre programme afin que les deux signaux aient la même longueur avant d'effectuer une opération arithmétique sur eux.

Souvenez-vous que vous pouvez faire de telles opérations si les variables ont une longueur différente ET un nom différent. Dans ce cas, MUSTIG exécute le calcul sur chaque combinaison d'échantillons de ces signaux et le résultat est donc une matrice (voir le Mode fonctionnel).

Un truc : Pour connaître les attributs des signaux sur les bornes d'entrée du module, glissez un module Info (disponible dans la section Changements de Variable de la Bibliothèque) dans la fenêtre du programme. Cliquez dessus pour le sélectionner et lancer la mode Sonde (raccourci Alt+R) : le curseur de la souris se change en une sonde. Cliquez sur chaque fil de l'entrée à son tour pour voir les caractéristiques des variables : les différences sont détectées facilement. Tapez encore Alt+R pour retourner au mode normal. Le mode Sonde peut être utilisée avec tout module, macro la boîte qui n'a qu'une borne d'entrée et aucune borne de sortie (voir le mode Sonde).

La licence Mustig n'existe pas sur cette machine

Signification : Vous essayez de lancer Mustig avec un fichier clé Mustig5.cle invalide. Ce fichier doit être inclus dans le répertoire Mustig et ne doit pas être renommé. Les causes possibles sont :

Solution : Verifiez que le numéro host_id de votre machine est égal au numéro de la machine dans le fichier Mustig5.cle. Verifiez que le dongle de la protection est présent. Verifiez que le fichier Mustig5.cle est présent dans le répertoire Mustig et n'a pas été renommé ou changé. Si vous utilisez une version temporaire, vérifiez la date dans le fichier Mustig5.cle.

Si cas tout paraît correct, contactez l'assistance LIS-INPG.

Nombre de bornes incorrect

Signification : Erreur interne de Bibliothèque. Vous pouvez obtenir cette erreur si vous utilisez des macros de très vieilles versions de MUSTIG.

Solution : Si possible, remplacez la macro par une macro plus récente, équivalent. Si non, rapportez cette erreur à l'assistance LIS-INPG.

Nombre de variables ou nom de variable incorrects

Signification : Vous essayez probablement de créer une macro, mais les noms de variables que vous avez entrés sur la face avant (afin qu'ils puissent être modifiés facilement) sont inconnus à l'intérieur de la macro. Donc, l'opération est annulée et les variables sont enlevées de la face avant de la macro.

 

Solution : Entrez en mode d'édition de texte dans la face avant (Majuscule+Ctrl+Clic) et entrez des noms de variables qui existent à l'intérieur de la macro.

Note : Une fois que la macro est définie correctement, vous pouvez changer un nom de variable pour s'adapter aux variables définies dans votre application :

Seulement une variable infinie (longueur = -1) est permise

Signification : Deux variables sont déclarées avec une longueur infinie. Cela n'est pas permis.

Solution : Changez votre programme afin que seulement une variable infinie soit utilisée.

Erreur d'ouverture

Signification : Mustig ne peut pas ouvrir ou sauvegardr le fichier. La cause la plus commune est quand vous essayez de sauvegardr un graphe dans un répertoire dans lequel vous n'avez pas le droit d'écrire des fichiers.

Solution : Soit sauvegardez le graphe dans un autre répertoire en utilisant la commande Enregistrer sous... du menu Fichier, ou contactez votre administrateur système pour obtenir des droits de l'accès adéquats.

Opération non supportée sur une variable de longueur dynamique

Signification : Vous essayez dde faire une opération sur un signal dont la longueur change dynamiquement une autre variable, et cette opération n'accepte pas de variables dynamiques. Le module Sous-echantillonne dans l'exemple ci-dessous est un de ces modules qui n'acceptent pas de variables dynamiques.

Solution : Utilisez des modules qui acceptent des variables dynamiques, ou changez votre programme pour (au moins temporairement) fixer la longueur des signaux. Cela est fait en sauvant les longueurs originales des signaux, ajoutant des zéros à tous les signaux jusqu'à la longueur maximale, traitant ces signaux de durée fixe, et enfin ramenant dynamiquement les signaux aux longueurs appropriées sauvegardées, comme dans l'exemple ci-dessous.

C'est une façon commune de surmonter les restrictions sur l'usage des variables dynamiques.

Opération sur une variable qui contrôle la longueur d'une autre variable du même signal (nom variable)

Signification : C'est une restriction sur l'usage de variables dynamiques. Vous essayez de faire une opération selon une variable qui contrôle la longueur des signaux, et cette opération n'est pas possible.

Dans l'exemple ci-dessous, on essaie de symétriser un groupe de signaux (t est le temps et n le nombre de signaux) dont la longueur change dynamiquement, pour renverser l'ordre des signaux dans le groupe (le premier signal devient le dernier, et ainsi de suite). Cette opération ne peut pas être faite parce que les signaux n'ont pas la même longueur.

Solution : Utilisez des modules qui acceptent des variables dynamiques, ou changez votre programme pour (au moins temporairement) fixer la longueur des signaux. Cela est fait en sauvant les longueurs originales des signaux, ajoutant des zéros à tous les signaux jusqu'à la longueur maximale, traitant ces signaux de durée fixe, et enfin ramenant dynamiquement les signaux aux longueurs appropriées sauvegardées, comme dans l'exemple ci-dessous.

C'est une façon commune de surmonter les restrictions sur l'usage de variables dynamiques.

Borne non reliée

Signification : La borne d'entrée montrée en rouge est nécessaire pour calculer le résultat, mais elle n'est pas reliée. Si la borne paraît connectée, alors la borne non reliée doit être recherchée en amont (ici dans la macro x16) :

Solution : Ouvrez la macro en amont jusqu'à ce que vous trouviez la borne non reliée, et la relier correctement.

Cette erreur peut se produire dans d'autres cas :

 

 

Erreur de lecture

Signification : Une erreur s'est produite quand on essaye de lire les données du disque.

Solution : Essayer encore de lire les données.

Respecter la hiérarchie pour les images

Signification : Vous essayez de glisser un opérateur sur la face avant d'une macro ou sur une fenêtre Image pour créer une image interactive de cet opérateur (voir Créer des images), mais l'opérateur n'appartient pas à cette macro, ou n'est pas dans le même graphe que la fenêtre image.

Dans l'exemple ci-dessous, cette erreur se produit si vous essayez de glisser un module de la macro Macro1 sur la face avant de la macro Macro2, ou inversement.

Solution : Créez des images de modules de la macro seulement, ou de sous - macros incluses dans la macro. Si vous voulez mélanger des images de modules de plusieurs macros, assemblez d'abord ces macros en une seule macro.

Dans l'exemple précité, vous pourriez créer une boîte pour encadrer Macro1 et Macro2 et taper Alt+M pour créer une " macro mère ". Vous pouvez alors glisser des modules de Macro1 et Macro2 dans la face avant de cette nouvelle macro.

Longueur du signal non égale à une puissance de 2 (nom variable)

Signification : Une Transformée de Fourier Rapide a été programmée (module TF/t/f), et donc la longueur de la variable devrait être une puissance de 2 à ce point du graphe.

Solution : Utilisez un module Partie ou similaire pour couper ou étendre la longueur du signal à une puissance de 2 - La macro Arrondi à 2**n dans la section Opérations Élémentaires de la Bibliothèque permet de calculer la plus grande puissance de deux la plus proche de la durée du signal.

Vous pouvez utiliser aussi les macros de Transformée de Fourier Discrète TFD dans la section Complexes de la Bibliothèque : elles n'exigent pas que la longueur du signal soit une puissance de 2. Cependant, elles sont beaucoup plus lentes que la Transformée de Fourier Rapide.

 

Longueur du signal non égale à une puissance de 2 + 1 (nom variable)

Signification : Une Transformée de Fourier Inverse Rapide (module TFI/f/t) est appelé. Donc, la longueur du signal devrait être une puissance de deux plus un (par exemple 129, 257, 513,...) si son attribut Demi vaut 1.

En particulier, c'est le cas si le signal est un signal complexe obtenu en calculant la Transformée de Fourier Rapide d'un signal réel, comme dans le filtre de passe-bas élémentaire ci-dessous. La Transformée de Fourier Inverse Rapide d'un tel signal est un signal réel.

Solution : Utilisez un module Partie ou similaire pour couper ou étendre la longueur du signal à une puissance de 2 plus un - La macro Arrondi à 2**n dans la section Opérations Élémentaires de la Bibliothèque permet de calculer la plus grande puissance de deux la plus proche de la durée du signal.

Vous pouvez utiliser aussi les macros de Transformée de Fourier Discrète Inverse TFDI dans la section Complexes de la Bibliothèque : elles n'exigent pas que la longueur du signal soit une puissance de 2 plus un. Cependant, elles sont beaucoup plus lentes que la Transformée de Fourier Rapide Inverse.

Erreur de structure

Signification : Le graphe ne peut pas être sauvegardé à cause d'une erreur interne.

Solution : Essayez d'effacer tour à tour les modules que vous avez ajoutés récemment au graphe, jusqu'à ce qu'il puisse encore être sauvegardé. Rapportez cette erreur à LIS-INPG.

Structure non calculable

Signification : Le compilateur MUSTIG ne peut pas traiter ce graphe. La cause vraisemblable est que le graphe a des dépendances circulaires plus complexe que celles détectées par l'erreurCercle Vicieux.

Solution : Modifiez votre programme pour supprimer les dépendances circulaires.

Erreur de syntaxe

Signification : Le texte encadré en traits rouges montre une erreur de syntaxe. Cela peut se produire en entrant un texte d'interface dans le module Extern ou Fortran, en entrant une formule dans le module Formule, ou en écrivant un script de Batch.

Solution : Corrigez votre texte pour enlever l'erreur de syntaxe.

La boîte doit avoir une seule borne(d'entrée)

Signification : Vous essayez d'utiliser le mode Sonde (raccourci Alt+R) avec un module qui n'a pas les caractéristiques adéquates : seulement une borne d'entrée, et aucune borne de sortie :

Solution : Créez une boîte autour du module (Clic+Glisser), créez une borne sur la boîte (Majuscule + Clic), et reliez la borne à la borne d'entrée du module :

Cliquez à nouveau sur la boîte et tapez Alt+R pour utiliser le mode Sonde.

La bibliothèque ne peut pas être sauvegardée de cette manière(FileName.bib)

Signification : Quand un programme qui a été précédemment sauvegardé dans le format de Bibliothèque (ordre Enregistrer spécial) est ouvert pour la première fois, MUSTIG crée un fichier spécial avec une extension .bib. Cette erreur se produit si MUSTIG ne peut pas écrire ce fichier. Cela n'empêche pas MUSTIG de travailler correctement. La cause la plus commune est MUSTIG tournant sous Windows NT ou UNIX avec des droits d'accès non appropriés.

Solution : Lancez MUSTIG avec des privilèges de l'utilisateur corrects une première fois, afin qu'il puisse écrire les fichiers .bib dans le répertoire Mustig - Changer les droits d'accès de l'utilisateur dans le répertoire Mustig.

Soyez informé que si vous n'avez pas les droits d'accès adéquats, le fichier d'options Mustig.prf ne peut pas être sauvegardé : MUSTIG commencera toujours avec les options par défaut.

Le signal ne dépend pas de la variable (nom variable)

Signification : Vous essayez d'exécuter une opération selon une variable qui n'existe pas à ce point du graphe. Dans l'exemple ci-dessous, une variable nommée x est créée et on essaie de construire une sinusoïde selon une variable nommée t : c'est une erreur.

Solution : Changez le nom de la variable sur la face avant du module sélectionné (Clic sur le nom, ou Maj+Ctrl+clic si la boîte n'est pas verrouillée). Le nom sera changé dans toutes les sous - macros intérieures automatiquement. Aussi voir les trucs ci-dessous.

Tous les modules à l'intérieur de la macro Sinus/x qui précédemment a dépendu de la variable /t dépendent maintenant de la variable /x . Vous pouvez voir ceci en cliquant deux fois sur la macro deux fois :

Cette technique permet de changer le nom de la variable selon laquelle une macro devrait opérer, sans changer le nom dans toutes les sous - macros qu'elle contient.

 

Truc 1 : Si plusieurs noms de variables doivent être changés, effacez tous les noms de variables, et puis entrez les nouveaux noms dans le même ordre. Cela empêche de remplacer accidentellement deux variables par une seule :

 

Truc 2: Si vous voulez changer les variables qui peuvent être renommées sur la face avant (par exemple changer le nombre de variables qui peuvent être accédées par ce moyen) : effacez toutes les variables de la face avant et cliquez à l'extérieur de la boîte pour sortir. Alors, entrez en mode d'édition et entrez les variables auxquelles vous voulez pouvoir avoir l'accès :

 

Truc 3 : Si l'utilisateur renomme une variable sur la face avant dans le nom d'une variable interne (utilisée à l'intérieur de la macro mais pas présente sur la face avant), la variable interne est renommée en insérant automatiquement un signe "> " avant le nom pour éviter d'avoir des définitions de variables contradictoires.

Les définitions de variables doivent être statiques

Signification : Ce paramètre d'entrée doit être statique, c.-à-d. il ne devrait pas dépendre d'une autre variable. Un cas typique est quand on essaie de définir plusieurs pas d'échantillonage ou origines pour un signal (voir l'exemple dessous). Quelques modules de la bibliothèque ne supportent pas de variables dynamiques et produisent ce message quand utilisés avec des signaux dynamiques.

Solution : Modifiez votre graphe afin que la définition de variable devienne statique.

Cette borne doit être isolée avec un module " = "

Signification : Deux bornes sont reliées dans une configuration qui n'est pas autorisée. Cela peut se passer en particulier quand on utilise des programmes créés avec de plus vieilles versions de MUSTIG. Une telle configuration invalide peut aussi être obtenue avec les faisceaux :

Solution : Insérez un " = " module (disponible dans la section Opérations Élémentaires de la bibliothèque) juste avant la borne en question.

Le module " = " ne modifie pas les données, mais agis comme un connecteur intermédiaire exigé dans de tels cas.

Trop de fenêtres

Signification : Trop de fenêtres sont ouvertes en même temps.

Solution : Fermez quelques fenêtres et quelques programmes MUSTIG inutilisés. Ce peut être nécessaire de sauvegarder le graphe après avoir fermé toutes les fenêtres, sortie de MUSTIG et relancer.

On essaye de faire une boucle sur un signal qui a une variable dont la longueur dépend de la variable de boucle

Signification : Une boucle est exécutée selon une variable (ici i variable dans la macro Somme/i), mais la longueur du signal change selon cette variable dynamiquement : cela n'est pas autorisé.

Dans l'exemple ci-dessous, l'erreur se produit parce qu'on essaie d'additionner selon la variable i trois signaux de longueur 100, 200 et 256 échantillons selon la variable t ce qui est impossible (vous ne pouvez pas additionner un vecteur de 100 échantillons et un vecteur de 200 échantillons !).

Solution : Changez le graphe afin que tous les signaux aient la même longueur, ou sommez selon une variable selon laquelle cette opération est valide.

Note : Sommer selon la variable t serait OK et produirait un vecteur (selon la variable i) de trois sommes.

Code inconnu

Signification : Erreur interne.

Solution : Rapportez cette erreur à LIS-INPG. Si possible, email une copie de votre programme afin qu'il puisse être lancé avec un outil de déboguage.

Cercle vicieux

Signification : Le graphe ne peut pas être calculé parce qu'il est circulaire. Cette erreur se produit fréquemment quand on oublie d'insérer un délai dans l'algorithme (ici un filtre du premier ordre).

Solution : Modifiez le graphe (par exemple en insérant un opérateur délai) pour casser la dépendance circulaire.

Erreur d'écriture

Signification : Une erreur s'est produite quand on essaye d'écrire les données sur le disque.

Solution : Essayez d'écrire à nouveau les données, ou écrivez-les sur un autre disque.

 

LES TRUCS de DEBOGUAGE

Certains fils disparaissent, le graphe semble inconsistent

Quelquefois le graphe semble inconsistent, comme si un fil avait disparu :

Cela veut dire simplement que deux fils sont superposés. Comme l'opération XOR est utilisée pour manier la superposition, deux fils superposés sont tracés comme un fil invisible ! A partir de la version 5, les fils superposés sont tracés comme un fil seul, normal, ce qui rend aussi le graphe difficile à lire.

Juste placez le curseur de la souris sur le fil invisible et déplacez-le un peu pour séparer les fils  :

Je ne peux imprimer aucune fenêtre Mustig

Sûrement les options d'impression ne sont pas correctes.

Quelques erreurs d'impression ont été observées avec quelques imprimantes, spécialement des imprimantes en réseau. Contactez le service d'assistance pour plus d'information.

Le Copier-Coller ne marche pas correctement avec les autres applications

Quelques applications n'acceptent pas le Copier/Coller de haute résolution. Si vous cochez Edition / Options / Graphique / Copie bitmap cela produit un bitmap qui est bien accepté généralement. Aussi essayez de changer l'option / Edition / Options / Graphique / Copier le tour .

Toutes les fenêtres de toutes les macros s'ouvrent à la fois!

Vous avez probablement cliqué à droite dans la fenêtre principale du programme MUSTIG : toutes les boîtes et sous - macros ont donc été calculées à la fois! Vous pouvez empêcher cela en cochant l'option Edition / Options / Ne pas calculer la fenêtre mère.

Les résultats ne se mettent pas à jour

Une petite valeur indique que MUSTIG doit recalculer seulement les résultats qui ont besoin d'un bref temps du calcul, et seulement réinitialiser des résultats qui ont besoin de plus longs calculs. Pour un programme d'acquisition de données nous recommandons fortement de mettre cette valeur à 0, pour empêcher le lancement de l'acquisition par hasard quand une valeur d'entrée est modifiée.

Tous les résultats graphiques sont en noir et blanc

Sûrement l'option Edition / Options / Graphique / Palette Noir & Blanc est validée. Videz le programme en cliquant sur la fenêtre principale du programme et lançant l'ordre Réinitialiser la clôture du menu Calculs. Puis, ouvrez Edition / Options / Graphique et changez l'option de la palette.

Je ne peux pas faire glisser un module d'une fenêtre Mustig

sont des exemples d'opérations invalides.

Le fichier des options n'est pas sauvegardé quand on sort de Mustig

MUSTIG ne peut pas écrire le fichier des options dans le répertoire MUSTIG : vous n'avez probablement pas les droits d'accès adéquats au répertoire MUSTIG.

Les raccourcis d'ouverture des graphes récents (menu Fichier) ne marchent pas

Vous n'avez probablement pas les droits d'accès adéquats au répertoire MUSTIG.

L'option que j'ai mise n'est pas prise en considération, ou n'est pas acceptée

Certaines options exigent que les programmes MUSTIG et la mémoire soient réinitialisés avant de les changer.

Il y a des artéfacts graphiques dans les fenêtres MUSTIG

Si les artéfacts graphiques paraissent dans une fenêtre MUSTIG quand on déplacer ou redimentionne une boîte, déplacez la fenêtre en bas de votre écran, lachez-la, et redéplacez-la à sa place originale pour forcer une mise à jour.

Vous pouvez aussi simplement redimentionner la fenêtre pour forcer la mise à jour, mais cela n'est pas recommandé quand la fenêtre est verrouillée.

Seulement une portion d'une courbe est affichée

Cela a été observé quelquefois (bien que rarement) : une courbe graphique est affichée avec un décalage aléatoire dans la fenêtre graphique, et donc seulement une portion de la courbe est visible.

Cela est généralement résolu en fermant la fenêtre et la recalculant. Dans quelques cas il est nécessaire de réinitialiser le programme, ou le fermer.

Si ce comportement est souvent observé avec votre application, contactez s'il vous plaît l'assistance et envoyez lui une copie de votre programme si possible.