ELECINF344/381

Partie interactive du site pédagogique ELECINF344/ELECINF381 de Télécom ParisTech (occurrence 2011).

Catégories

MB Led et IrDA: paquets, procédure de test…

Structure des paquets:

Tout les paquets envoyés sont précédés de l’enchainement de caractères « MBL » qui marque le début d’un paquet. Par la suite, sont envoyés dans l’ordre:

  1. FROM :           8 bits id de l’émetteur
  2. Idpacket:        8 bits id du paquet nécessaire pour les acquittements.
  3. Priority:          4 bits valeur entre 0 et 7
  4. To:                 4 bits permet de savoir à qui est adressé le message (voisin, broadcast, leader)
  5. TTL:               8 bits duré de vie du message sur le réseau
  6. Mode:            8 bits Contient la commande (PING, PONG, DATA_IMG….) le premier bit indique la présence de Data.
  7. Size_of_data:  8 bit Taille de la Data majorée par MAX_DATA_SIZE
  8. Data:             Tableau de d’octet pouvant contenir ce que l’on souhaite.
  9. Checksum :    16 bit.


Procédure de test:

Après avoir étudier l’implémentation de l’IrLAP pour Linux, il est devenu évident qu’il n’était pas nécessaire de l’implémenter. A la place je suis en train de mettre en place un processus de dialogue similaire à celui mis en place pendant le communication challenge.

Dans un premier temps les blocs émettent des PING jusqu’à recevoir un PONG. Dès lors ils associent l’identifiant du bloc à l’un des ports et commence le nécessaire pour l’algorithmie.

Pour le moment je suis en train de débugger cette phase en mettant deux blocs face à face. Dans un premier temps j’utilise un bloc en émission sur lequel je vérifie les paquets envoyés puis je place un second bloc en face et observe pas à pas la procédure de réception du paquet. Hier j’ai pu envoyer un paquet contenant de la data  et ayant un TTL de n. Le bloc qui reçoit ce paquet le réémet avec un TTL de n-1. Ainsi on pouvait voir les deux blocs s’échanger ce paquet jusqu’à atteindre un TTL de 0.

Je m’attache maintenant à la réception de commandes, c’est à dire des paquets sans data tel qu’un PING ou un PONG.  Je rencontre alors des problèmes, notamment avec le checksum et la réémission de ces paquets.