next up previous contents
Next: Analyse du Prototype et Up: Implémentation du Prototype Previous: Fonctionnalités POSIX

Le Contrôleur ESTEREL et l'Interfaçage C :

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.

   figure876

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 up previous contents
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