pb de modélisation

pb de modélisation - Java - Programmation

Marsh Posté le 20-02-2003 à 16:27:00    

Voila je veux simuler un bus ethernet (un cable en fait)
 
en ethernet on utilise le codage manchester qui permet de differencier si le cable est au repos ou s'il recoit des bits a 0
 
ici pour notre projet on a decidé de mettre des '2' dans le bus (tableau de byte) lorsqu'il est au repos. trouvez vous que c  bourrin ou pas?
 
et sinon est ce que vous connaitriez un truc qui permette de decaler tous les bits d'un tableau a chaque milliseconde , c'est a dire a chaque milliseconde un bit entre dans le tableau et remplace le premier bit du tableau ; de meme le dernier bit du tableau est supprimé et remplacer par celui d'avant
 
merci
 

Code :
  1. import java.util.*;
  2.     public class BusEthernet
  3.    {
  4.       byte[] bus;
  5.       private Trame trame;
  6.  
  7.        public BusEthernet()
  8.       {
  9.          bus= new byte[TAILLE_BUS];//represente le bus  
  10.          for(int i=0;i<TAILLE_BUS;i++)
  11.             bus[i]=(byte)0x02; //on met des 2 dans le bus : quand il  y a des 2 c'est que le cable est au repos     
  12.       } 
  13.        public boolean estVide()
  14.       {
  15.          int i;
  16.          while (i<TAILLE_BUS && bus[i]==(byte)0x02)
  17.             i++;
  18.      
  19.          return (i==TAILLE_BUS);
  20.          return  (bus.size()==0);
  21.       }
  22.  
  23.        public synchronized void mettreTrame(Trame tr) throws CollisionException
  24.       {
  25.          //mettre une trame sur le bus
  26.          if( bus.size() > 0 )
  27.             throw new CollisionException();
  28.      
  29.          bus.add(tr);
  30.       }
  31.  
  32.     /*Enlève une trame du bus et retourne 0 si tout c'est  
  33.     bien déroulé -1 sinon*/
  34.        public int enleverTrame(Trame tr)
  35.       {
  36.       }
  37.  
  38.     /*Retourne la trame courante sur le bus*/
  39.        public Trame getTrameCourante()
  40.       {
  41.          return trame;
  42.       }
  43.  
  44.    }

Reply

Marsh Posté le 20-02-2003 à 16:27:00   

Reply

Marsh Posté le 20-02-2003 à 18:56:27    

spitagor a écrit :

Voila je veux simuler un bus ethernet (un cable en fait)
 
en ethernet on utilise le codage manchester qui permet de differencier si le cable est au repos ou s'il recoit des bits a 0
 
ici pour notre projet on a decidé de mettre des '2' dans le bus (tableau de byte) lorsqu'il est au repos. trouvez vous que c  bourrin ou pas?
 


 
Ca dépend, en modélisation "pure" (pédagogique ou branlage de nouille) tu dois faire une énumération des états possibles : une classe abstraite BusState et des sous-classes concrètes BusFree BusTrue BusFalse.
 
Bien évidement, tu peux, dans beaucoup de cas, en faire des singletons.

Reply

Marsh Posté le 20-02-2003 à 18:58:49    

moi j'ai du mal avec ça
 
return (i==TAILLE_BUS);
return  (bus.size()==0);
 
ton compilo ne te dis rien?

Reply

Marsh Posté le 21-02-2003 à 07:56:21    

euh oui taz ya pas mal d'erreurs  :)  
 
par contre les classes abstraites j'ai pas bien compris l'interet donc je comprends pas trop ta reponse en fait dsl...

Reply

Marsh Posté le 21-02-2003 à 11:26:41    

petite définition perfectible:
 
une classe abstraite, c'est une classe dont l'implémentation n'est pas suffisante pourqu'elle puisse etre instanciée
 

Code :
  1. struct Truc
  2. {
  3.    virtual string nom()=0;
  4. }

 
ici, on a fait de truc une class abstraite (avec nom qui est une fonction virtuelle pure) par ce que conceptuellement, un truc, c'est beaucoup trop vague, il n'y aura sans doute pas 2 trucs qui vont fonctionner pareil. par contre on sait que les trucs ont toujours un nom. si on veut créer des trucs, on doit faire des des classes qui héritent de Truc et qui définissent la fonction membre nom.
 
on se sert de classes abstraites ans le cadre du polymorphisme lorsque l'on ne souhaite pas que la classe de base puisse etre instanciée
 
edit: OH PUTAIN J'AI LA TETE DANS LE CUL CE MATIN
CHASSEZ LA NATURE, ELLE REVIENT AU GALOP.
 
l'explication est toujours valide, sauf le bout de code. en java, c'est le mot clef "abstract" qui qualifie les classes et les methodes abstraites


Message édité par Taz le 21-02-2003 à 11:30:24
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed