Next: Analyse du Prototype et
Up: Implémentation du Prototype
Previous: Fonctionnalités POSIX
Tout programme ESTEREL nécessitant un interfaçage avec un
autre langage, celui-ci a été fait en C -ANSI.
Le module ESTEREL doit gérer les requêtes de l'utilisateur,
fournies à travers l'interface utilisateur.
Ces requêtes ont été décomposées en trois types :
- -
la requête pour sortir de l'application ;
- -
les requêtes de pilotage du robot ;
- >-
les requêtes de traitement d'images.
Donc, le module ESTEREL doit superviser :
- -
la durée d'exécution des fonctions de traitement d'images,
à travers l'enclenchement d'un timer, comme on l'a vu dans le paragraphe
précédent.
- -
les requêtes de pilotage du robot : si il n'y a pas de traitement
en cours, le traitement correspondant est lancé par le module
ESTEREL à travers le mécanisme task-exec, qui permet
de lancer des traitements asynchrones.
- -
les requêtes de traitement d'images : ces requêtes sont
l'acquisition d'image venant de la caméra, et la détection
de mouvement, qui fait appel à 2 fonctions qui vont permettre respectivement
le lissage de l'image à traiter et la détection d'une zone en mouvement.
Là aussi, le mécanisme employé est celui qui
fait appel à la primitive ESTEREL exec.
Mais, ce traitement est encadré par un mécanisme
de "chien de garde" ESTEREL, do-watchdog,
en attente sur l'expiration
du délai imparti à la fonction de traitement d'images lancée.
Si le délai est expiré et que l'action de traitement d'image
est en cours, celle-ci est stoppé via le mécanisme task-exec.
- -
la requête de sortie de l'application, et des signaux
indiquant si il y a un problème au niveau du hardware, dans tous
ces cas de figure, on sort de l'application.
La figure 5.5, comme illustration au module de contrôle
ESTEREL, présente la partie de l'automate,
généré par le compilateur ESTEREL, qui contrôle
la requête d'acquisition d'image.
Figure 5.5: Partie de l'automate généré par ESTEREL
Du point de vue de l'interfaçage C, une procédure
générique, dans le sens qu'elle traite
toutes les commandes robot indépendamment de leur nature,
lance au système Argès la commande
adéquate à la requête de départ de l'utilisateur, et trois
procédures prennent en charge respectivement le lancement
de l'acquisition d'image provenant de la caméra, le lissage de l'image
et la détection d'une zone en mouvement.
D'après le formalisme introduit dans le chapitre 3
au paragraphe 3.3.1, chacune de ces procédures peut être
vue comme une straight-line function.
Next: Analyse du Prototype et
Up: Implémentation du Prototype
Previous: Fonctionnalités POSIX
Soraya Arias
Mon Aug 5 17:38:44 MET DST 1996