Next: Le Contrôleur ESTEREL et
Up: Implémentation du Prototype
Previous: Implémentation du Prototype
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 :
- 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.
- 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.
- 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(
) : 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(
) : cette primitive
permet de désamorcer le timer.
- -
int timer_settime(
) : 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: 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