4
le modèle et l’environnement. Cet échange est assuré part lecture/écriture depuis et vers
un canal de communication.
- Paramètres : qui sdoivent être déclarés comme suit :
et crées et affecté de cette manière :
- Un constructeur : pour créer et configurer les ports et les paramètres.
Cette étape peut se faire de manière générique tel est le besoin pour l’utilisation de
MUSE. En effet, cette partie de la classe change selon le MUSE ce qui nécessite une
définition dynamique en fonction de l’introspection du MUSE. Ceci est possible, en
modifiant dynamiquement le MOML file de l’acteur en focntion du MUSE et grâce à la
fonction « MOMLChangeRequest » (modifier la partie model définition):
Afin d’assurer sa simulation efficace par le cœur de Ptolemy, l’acteur doit implémenter
certaines méthodes selon l’action désirée dont principalement ces méthodes qui vont être
implémenté pour l’exploitation du MUSE :
- Preinitialize : préparation de la simulation comme charger le composant MUSE
- Initialize : Initialiser la simulation (affecter les valeurs initiales par exemple)
- Fire : c’est la méthode principale d’exécution et qui,appelé, à chaque étape de la
simulation assure principalement la récupération des inputs et lla production des
outputs.
- Warrup : appelée à la fin de la simulation principalement pour l’affichage des résultats
finaux.
III. Le plug-in MUSE dans BCVTB
1. Principe et réalisation
Le plug-in du MUSE dans BCVTB consiste ainsi à créer un nouveau acteur ayant les mêmes
ports et paramètres et qui permettra l’échange d’information entre le MUSE et PtolemyII pour
permettre sa simulation.
Pour le faire, la première étape consiste à créer un acteur atomique générique
MUSE.actor.MUSEImport. Il s’agit ensuite d’implémenter les méthodes d’action de l’acteur
ptolemy II avec les interfaces correspondantes du MUSE :
- Preinitialize : MuseJarLoader, getMuse et loadFacets.
- Initialize : var.setValue pour l’affectation des paramètres et initialize pour
l’initialisation de la simulation.
- Fire : var.setValue pour l’affectation des inputs, doStep pour l’éxcétion du step,
var.getValue pour la récupération des outputs