Vous êtes sur la page 1sur 4

Compte-rendu

1.Rappel du sujet.

Le but de ce premier TP était de créer un programme JAVA permettant de tracer électrique émis lors
de l'envoi d'une chaîne binaire en fonction du code de déchiffrage choisi entre NRZ, Manchester,
Manchester Différentiel et Miller.

2.Analyse du sujet.

Le Programme créé devra donc utilisé 2 classes : une pour déchiffrer le signal émis, l'autre pour
afficher l'interface et le traçage effectué dans la classe Signal.
L'interface devra permettre de rentrer une chaîne binaire et de choisir un code de déchiffrage via un
menu. La classe Signal devra comporter les différentes méthodes de traçage et ces méthodes
devrons se comporter différemment en fonction du code choisi dans le menu de l'interface.

3. Choix techniques effectués.

La classe Fenetre est créé en en classe Fille de la classe Jframe qui contient les méthodes de base de
création de fenêtre sur le système d'exploitation utilisé. Les attributs de cette classe sont bien
évidemment le signal a décrypter, un menu pour choisir le type de code (placés dans un tableau de
String) et un champ textuel pour écrire la chaîne binaire.
Le principal but de cette interface est d'afficher le signal émis par la chaîne binaire selon le code
choisi, elle devra donc être assez grande pour afficher au moins un octet (8bits). Elle devra
également être capable de changer le signal si le code est changé depuis le menu grâce à la méthode
repaint. On s'assure que la chaîne binaire entrée dans le champ textuel est bien une chaîne de
caractère ne comportant que des 1 et des 0 grâce un l'affichage d'un message d'alerte si un caractère
est différent de ces deux choix possibles.
La chaîne binaire sera envoyé au traitement grâce à un bouton « Envoyer » à coté de celle-ci.
La classe Signal s'occupe de tout le traitement du signal émis par la chaîne binaire. C'est elle qui
trace la représentation de la tension émise par les bits selon le code choisi. Elle hérite donc de la
classe JPanel.
Par défaut le code sera sur NRZ, nous avons besoin d'un indicateur de niveau de tension qui nous
permet d'éviter les erreurs de dessin lorsqu'il faut tracer en haut ou en bas. Un indicateur du
caractère binaire précédent utilisé dans les méthodes Manchester Différentiel et Miller dans
lesquelles les suites d'un même caractère ont un impact sur le tracé. L'attribut stateSignal permet
aux méthodes Manchester Différentiel et Miller de corriger le tracé en fonction du signal envoyé.
Les méthodes principales sont drawZero, drawUn et paintComponent qui, en fonction du code
choisit dans le menu de la classe Fenetre, tracerons les signaux correspondant. DrawZero et drawUn
utilisent les méthodes drawBas et drawHaut qui tracent une ligne dont la longueur dépend de
l'argument size. La méthode paintComponent est la méthode utilisé pour tracé le signal selon si elle
lit un zéro ou un un dans la chaîne de caractère. Notons que cette méthode indique également en
haut du signal si il s'agit d'un 0 ou d'un 1 pour chaque bit décrypté, de plus elle sépare chaque bit
par une ligne pointillé verticale grâce a la méthode drawDashedLine.
4. Résultats et tests.

Pseudo Code du tracé du signal :


POUR i de 0 à tailleCaîneBinaire
FAIRE
DessinerLignePointillée(au début de l'espace réservé au caractère suivant)
Couleur = Noire
SI caractère placé en i = 0
FAIRE Dessiner 0
SINON
Dessiner 1
FIN SI
FIN POUR

Pseudo Code tracé d'un 0 :


DessinerCaractère(« 0 »)
SI méthode = NRZ
FAIRE DessinerEnBas(50 pixels)
SINON SI méthode = Manchester
FAIRE DessinerEnBas(25 pixels)
DessinerEnHaut(25pixels)
SINON SI méthode = Manchester différentiel
FAIRE
SI signalCaractère = 0
FAIRE DessinerEnBas(25 pixels)
DessinerEnHaut(25pixels)
SINON
FAIRE DessinerEnHaut(25 pixels)
DessinerEnBas(25 pxiels)
FIN SI
SINON SI méthode = Miller
FAIRE
SI binairePrecedent = 0
SI singalCaractère = 0
FAIRE signalCaractère = 1
SINON signalCaractère = 0
FIN SI
FIN SI
SI signalCaractère = 0
FAIRE DessinerEnHaut(50 pixels)
SINON
FAIRE DessinerEnBas(50 pixels)
FIN SI
FIN SI
binairePrecedent = 0
Pseudo Code tracé d'un 1 :
DessinerCaractère(« 1 »)
SI méthode = NRZ
FAIRE DessinerEnHaut(50 pixels)
SINON SI méthode = Manchester
FAIRE DessinerEnHaut(25 pixels)
DessinerEnBas(25pixels)
SINON SI méthode = Manchester différentiel
FAIRE
SI signalCaractère = 0
FAIRE signalCaractère = 1
SINON signalCaractère = 0
FIN SI
SI signalCaractère = 0
FAIRE DessinerEnBas(25 pixels)
DessinerEnHaut(25pixels)
SINON
FAIRE DessinerEnHaut(25 pixels)
DessinerEnBas(25 pxiels)
FIN SI
SINON SI méthode = Miller
FAIRE
SI signalCaractère = 0
FAIRE DessinerenHaut(25 pixels)
DessinerenBas(25 pixels)
signalCaractère = 1
SINON
FAIRE DessinerEnbas(25 pixels)
DessinerEnHaut(25 pixels)
singalCaractère = 0
FIN SI
binairePrecedent = 1
5. Conclusion

Nous avons ainsi créé un programme fonctionnel permettant de traiter puis d'afficher un signal
binaire selon différentes méthodes de codage.
La partie traitement du signal est la plus complexe et comporte de nombreuse méthode nécessaire à
son bon fonctionnement, il aurait pu être plus judicieux de trouver une autre manière de traiter le
signal pour plus de facilité de lecture.
La fenêtre n'est généré n'est pas modifiable en taille, ce qui limite l'affichage lors de l'envoie d'une
chaîne binaire très grande. Il aurait pu être intéressant que la fenêtre puisse prendre en compte la
taille de la chaîne binaire envoyé pour s'agrandir au besoin.

Vous aimerez peut-être aussi