Le Coin Wiki
d'Olivier Dalle
$WikiTagline
 

Seance de TP 6

Le sujet du TP, not, vous sera communiqu (et expliqu) durant la seance de Cours.

La page de Eric Brunneton

Pour ce TP, vous aurez besoin de code suivant:

package digital;

import GenCol.entity;
import genDevs.modeling.content;
import genDevs.modeling.message;
import simView.ViewableAtomic;

public class Ptrans extends ViewableAtomic {

        private boolean grid_;
        private boolean source_;
        private boolean sink_;
        public static entity zero = new entity("zero");
        public static entity un = new entity("un");


        public Ptrans(){
                super("Ptrans");
                source_ = true;
                grid_ = false;

                addInport("src");
                addInport("cmd");
                addOutport("sink");
                addTestInput("src",un);
                addTestInput("src",zero);
                addTestInput("cmd",un);
                addTestInput("cmd",zero);
                addTestInput("src",un,1.0);
                addTestInput("src",zero,1.0);
                addTestInput("cmd",un,1.0);
                addTestInput("cmd",zero,1.0);
        }

        public Ptrans(String name,boolean autosrc) {
                super(name);
                source_ = autosrc;
                grid_ = false;

                if (! autosrc)
                        addInport("src");
                addInport("cmd");
                addOutport("sink");
        }

        public void initialize() {
                sink_ = source_ && ! grid_;
                holdIn("active",0.0);
        }

        public void deltint() {
                passivate();
        }

        public void deltext(double e,message x){
                Continue(e);

                for (int i=0; i< x.getLength();i++) {
                        if (messageOnPort(x,"src",i)) {
                                entity val = x.getValOnPort("src", i);
                                if (((val.equals(zero)) && source_) ||
                                                ((val.equals(un)) && ! source_)){
                                        source_ = (val.equals(un));
                                }
                        }

                        if (messageOnPort(x,"cmd",i)) {
                                entity val = x.getValOnPort("cmd", i);
                                if (((val.equals(zero)) && grid_) ||
                                                ((val.equals(un)) && ! grid_)){
                                        grid_ = (val.equals(un));
                                }
                        }


                }

                sink_ = source_ && ! grid_;
                holdIn("active",0);
        }

        public static entity bool_entity(boolean val){
                if (val) return un;
                else return zero;
        }

        public message out( )
        {
                /* Construire la valeur de sortie. */
                entity   e = bool_entity(sink_);
                /* Construire la sortie simple */
                content  c = makeContent("sink",e);
                /* Construire un message vide */
                message  m = new message();
                /* Remplir le message avec une premiere (unique) sortie */
                m.add(c);
                return m;
        }

        /**
         * Cette methode permet d'ajouter des informations dans
         * la bulle qui s'affiche quand on passe la souris au dessus du composant
         * dans la fenetre graphique.
         */

        public String getTooltipText(){
                return super.getTooltipText()
                    +"\n"+"src: " + source_+"\n"+"cmd: " + grid_;
        }
}

Rendez-vous sur cette page pour la correction de l’exercice de la seance de TP 4.