astuces
Associer une action à une touche t du clavier
1) Écrire une fonction ACTION() réalisant cette action.
2) Écrire dans la fonction F0 du 1er call-back de interaction func(0,F0):
interaction ascii("t")func("ACTION");
Exemple:
Pour inhiber les affichages de textes ainsi que la mouse si on enfonce la touche : (deux points):
Écrire la fonction:
DEUX_POINTS()
{
inv status scale menu message mouse;
}
2) Écrire dans la fonction F0:
interaction ascii(":")func("DEUX_POINTS");
Débuger
Trouver une erreur de compilation
Le nom de la fonction et la ligne incriminée sont en général édités. On peut toujours faire
edit func, seuls les noms des fonctions correctement compilées
sont édités (l´erreur a donc eu lieu dans la fonction suivante).
Trouver une erreur d´exécution
Utiliser la fonction bug1.func qui offre un cadre général d´écriture
d´un programme interactif. Il suffit de placer du code entre les balises:
/***************/
/* AJOUTER ... */
/***************/
et
/*******************/
/* FIN AJOUTER ... */
/*******************/
On peut déclarer autant de variables et de fonctions que nécessaire.
On peut aussi modifuer une fonction
(avec l´éditeur interne) quand le programme
tourne.
Utiliser anyflo_video.js
Si la fonction à débuger est lancée par un fichier .js, celui-ci est relancé
indéfiniement en cas d´erreur. Il est alors préférable de lancer cette fonction
depuis anyflo_video.js, pour celà:
1) Cliquer sur anyflo_video.js
2) lire la fonction f.func.
3) La lancer: f()
4) On a alors la main pour consulter les variables.
Débugger du code
Utiliser la commande debug.
Variables de débugage
Utiliser la commande interaction debug qui
permet de modifier et/ou de visualiser des variables sur des échelles.
Quand on possède les sources d´anyflo et l´environnement de VisualC++.
Écrire rapidement un programme simple
Construire un fichier source xxx.func
1) Copier le fichier modele_menu_simple.func en Copie de modele_menu_simple.func
2) Renommer Copie de modele_menu_simple.func en xxx.func
3) Éditer le fichier xxx.func et changer modele_menu_simple() en xxx()
4) Écrire du code dans les fonctions AAA() BBB() et CCC()
5) Ajouter des directives,
des variables,
des fonctions, etc...
6) Exécuter xxx(): le mode
interaction est automatiquement invoqué et un menu contenant les noms des fonctions
à exécuter apparait.
7) Pour lancer automatiquement cette fonction:
7-1) Copier modele_menu_simple.js en Copie de modele_menu_simple.js.
7-2) Renommer Copie de modele_menu_simple.js en xxx.js
7-3) Éditer le fichier xxx.js et remplacer modele_menu_simple()
par xxx().
7-4) Cliquer sur xxx.js: la fonction xxx() est automatiquement exécutée.
Quelques recommendations
1) Pour faciliter le débugage il est utile de donner le même nom à une case XXX du menu et à la
fonction XXX() qui lui est associée, et de donner des noms du type XXX_YYY() aux
fonctions dépendant de XXX.
2) Pour éviter toute confusion entre un nom xxx de variable et une commande (il y en a
plusieurs centaines ...):
status(xxx);
imprime: dim (taille de xxx), type (FLOAT ou CHAR),
np (nombre de vecteurs), dimp (taille des vecteurs) et la valeur de xxx.
status(com);
n´imprime rien si com est une commande,
mais retourne le status de la commande.
Par exemple:
1)x=[1,12];status(x);
imprime:
dim = 6 type = FLOAT np = 12 dimp = 3
1 2 3 4 5 6 7 8 9 10 11 12
2) status screen;
n´imprime rien.
mais $status screen;
imprime 1 si yes screen est actif,
sinon imprime 0.
Fichier
Lire un fichier ascii
Pour connaître le contenu d´un fichier ascii de nom nn, faire:
$read("nn");
Pour récupérer le contenu d´un fichier ascii de nom nn dans une variable v faire:
v=read("nn");
History
Exemples d´utilisation.
Socket
Pour éviter des attentes (qui peuvent être très longues...) n´envoyer, par le client, que des
informations pertinentes. Pratiquement il suffit de ne pas envoyer 2 fois de suite la même
information.