Modèle atomique fonction d'observation

Description
La fonction de gestion des événements d'états ne fait pas partie de la specification DEVS classique ou DEVS parallèle. Elle est fournie dans la specification du simulateur de VLE. Son but est de gérer de manière automatique les événements de type questions-réponses entre deux modèles.

Le rôle de cette fonction est de gérer les flux de sorties des simulations. Dans la spécification DEVS, les sorties des simulations ne sont pas spécifiées. Dans le meilleur des cas les modélisateurs utilisent des modèles d'observations dans lesquels les sorties sont gérés ou utilise de simple sortie directement dans les modèles.

VLE propose un mécanisme proche des modèles d'observation. Un modèle d'observation, appelé observer dans VLE, est un modèle qui ne peut se connecter uniquement que sur des ports d'états de modèles atomiques. L'observateur est réglé, dans le fichier VPZ, pour observer le ou les modèles sur lequel il est connecté, par un pas de temps fixe ou de manière événementielle pour observer chaque transition d'état d'un modèle atomique.

Quand est-elle appelée ?
Cette fonction est appelée après les transitions internes et les transitions externes aussi bien dans le cas d'une observation à pas de temps ou d'une observation événementielle.

Prototype

 * event : l'événement d'état généré par l'observateur. Dans cet événement, nous pouvons trouver la date de la simulation, le nom de l'observateur et le nom du port d'état.
 * retourne une donnée de type value::Value* qui sera envoyée et traduite au plugin de sortie sous forme de fichier texte.
 * À noter que la fonction est constante (mot clé "const"), elle ne peut donc pas permettre de modifier l'état du modèle.

Comportement par défaut
Le comportement par défaut de la fonction processExternalEvents est de ne rien faire.

Quelques exemples d'utilisation
Le fichier VPZ correspondant :
 * Gestion des événements d'observation sur les ports d'entrée x, y et xy respectivement, la coordonnée x, la coordonnée y et un tableau de réels composé de deux valeurs x et y :

Ensemble de l'API de la classe devs::Dynamics : constructeur, destructeur, init, finish, initialisation, transition interne, avancement du temps, transition externe, sortie, conflit, observation, question-reponse