next up previous contents
Next: Le Contrôleur ESTEREL et Up: Implémentation du Prototype Previous: Implémentation du Prototype

Fonctionnalités POSIX :

Les contraintes de temps que le prototype a à gérer sont de l'ordre de la cadence vidéo du système de caméra, c'est-à-dire de l'ordre de 5Hz.

L'utilisation de POSIX, dans le prototype, apparaît dans la gestion d'un timer qui permet de contrôler la durée déxécution des fonctions qui font du traitement d'image.

Le module réactif ESTEREL seul ne permet pas de gérer directement le temps. Il faut que ce soit le système qui lui fournisse un signal correspondant à un tick d'horloge par exemple.

Par conséquent, on va gérer, avec des primitives compatibles avec le standard POSIX, un timer qui aura pour but de fournir un tick d'horloge toutes les millisecondes à une fonction qui contrôle la durée d'un traitement d'image.

Le protocole d'utilisation du timer suivi dans le prototype :

  1. Lors d'un appel à une fonction de traitement d'image, le timer, générateur de ticks d'horloge, est enclenché par le module ESTEREL à travers le mécanisme ESTEREL du call.
  2. Si l'action se termine dans le délai de temps qui lui est imparti, le module ESTEREL envoie un signal pour stopper le timer.
  3. Sinon, au bout du laps de temps imparti à l'action à surveiller, la fonction qui gère la durée du traitement d'image stoppe le timer et envoie au module ESTEREL un signal lui signifiant que le délai s'est écoulé. Alors le module ESTEREL décide d'arrêter ou de relancer le traitement en cours.

Pour implémenter la gestion du timer, générateur de ticks horloge, on va employer les primitives compatibles POSIX suivantes :

- int timer_create( tex2html_wrap_inline1416 ) : cette primitive permet de créer le timer. On spécifie, ici, sur quelle interruption le timer va s'enclencher lors de son utilisation. De manière générale, on utilise le signal d'horloge du système.
- int timer_delete( tex2html_wrap_inline1416 ) : cette primitive permet de désamorcer le timer.
- int timer_settime( tex2html_wrap_inline1416 ) : cette primitive permet de positionner le timer avec en paramètre un intervalle de temps au bout duquel le timer expire et la fonction à appeler lors de l'expiration.

A partir de ces fonctions, deux fonctionnalités ont été créées : une pour lancer automatiquement un timer de manière périodique, en l'occurence toutes les millisecondes et l'autre pour arrêter ce timer.


next up previous contents
Next: Le Contrôleur ESTEREL et Up: Implémentation du Prototype Previous: Implémentation du Prototype

Soraya Arias
Mon Aug 5 17:38:44 MET DST 1996