ELECINF344/381

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

Catégories

MB Led: Des séparations difficiles…

L’implémentation de l’algorithme est désormais presque fini. Tant que personne ne « quitte » le réseau, l’algorithme permet à tout le monde de savoir qui est dans le réseau et où il est; cela passe par une phase d’identification, une phase d’élection de leader, un positionnement des modules et la propagation de l’information au réseau entier.

Le problème principal est de bien faire cela dans l’ordre et que les informations données soient fiables et bien retransmises.

Lorsqu’un des modules quitte le réseau, celui qui s’en aperçoit propage l’information qu’il faut tout recommencer.
Pour remarquer qu’un module a disparu, la technique est simple : on envoie un PING et on laisse x ms à l’autre module pour répondre par un PONG. Si cela n’est pas fait, le module a sûrement disparu.
Lors de départ de module, il faut donc envoyer toutes les informations nécessaires sans oublier d’acquitter rapidement les PING, c’est pourquoi j’ai préféré utiliser une tache freeRTOS de très haute importance pour cela. Cependant, lors d’une simulation avec 9 modules, l’élection de leader se fait partiellement. De plus, l’acquittement ne se fait pas forcément et donc on repart à rien, ce qui peut conduire à un autre acquittement raté, etc.

 

Grâce à terminator, je peux suivre en temps réel les messages échangés entre les modules via zmq. (Les ping/pong ne sont pas montrés et il y a certains commentaires pour m’aider dans le débug.)

 

Sur le même sujet :

  1. MB Led: Algorithmie
  2. MB Led: Dialogues en zMQ
  3. MB Led et IrDA: paquets, procédure de test…
  4. MB Led: Journée de présentation
  5. MB led: Liste des composants, modulation d’intensité et Python

Commentaires fermés.