Modifications

Ligne 124 : Ligne 124 :     
===Le réseau===
 
===Le réseau===
Pour bien transmettre les coordonnées de tous les robots en jeu à nos deux robots, nous dévions établir une réseau de communication capable de supporter au moins deux clients, qui ces deux clients puissent se connecter à n'import quelle moment, et que tant le serveur comme les robots soient capables de supporter des éventuelles erreurs pendant la communication de forme qu'ils n’arrêtent pas son exécution.   
+
Pour bien transmettre les coordonnées de tous les robots en jeu à nos deux robots, nous dévions établir une réseau de communication capable de supporter '''au moins deux clients''', qui ces deux clients puissent '''se connecter à n'import quelle moment''', et que tant le serveur comme les robots soient capables de '''supporter des éventuelles erreurs''' pendant la communication de forme qu'ils n’arrêtent pas son exécution.   
 
Pour la création de cette réseau, nous utilisons la librairie '''socket''' de '''Python''', qui nous permet de créer les voies de communication entre le système de repérage (serveur) et les deux robots (clients). Nous créons donc des sockets de la famille d'adresse IPv4 du type '''SOCKET_STREAM''' pour le protocole '''TCP'''. La transmission des données via ce voie se fait avec des '''bytes'''. Python nous offre quelques options pour convertir des entiers et strings en bytes avec des simples fonctions, mais pour convertir des autres types d'objets, comme dans notre cas des '''matrices numpy''', on besoin de la librairie '''pcikle'''.
 
Pour la création de cette réseau, nous utilisons la librairie '''socket''' de '''Python''', qui nous permet de créer les voies de communication entre le système de repérage (serveur) et les deux robots (clients). Nous créons donc des sockets de la famille d'adresse IPv4 du type '''SOCKET_STREAM''' pour le protocole '''TCP'''. La transmission des données via ce voie se fait avec des '''bytes'''. Python nous offre quelques options pour convertir des entiers et strings en bytes avec des simples fonctions, mais pour convertir des autres types d'objets, comme dans notre cas des '''matrices numpy''', on besoin de la librairie '''pcikle'''.
 
Pickle est capable de sérialiser  n'import quel type d'objet sous forme binaire. Avec cette sérialisation, nous pouvons désormais envoyer notre table de coordonnées facilement avec les sockets.
 
Pickle est capable de sérialiser  n'import quel type d'objet sous forme binaire. Avec cette sérialisation, nous pouvons désormais envoyer notre table de coordonnées facilement avec les sockets.
Ligne 130 : Ligne 130 :  
Après cette bref description des librairies nécessaires, on part sur l'architecture de cet système de communication.  
 
Après cette bref description des librairies nécessaires, on part sur l'architecture de cet système de communication.  
   −
[[Fichier:Diagramme Reseau.png]]
+
[[Fichier:Diagramme Reseau.png|centre|]]
    
En commençant par le serveur, nous devons d'abord lui associer une adresse IP et un numéro de port, qui seront utilisés par les clients pour se connecter. Après cela, nous avons mis le serveur en attente de nouvelles demandes de connexion. Le serveur étant prêt, il gère les demandes de connexion et les clients déjà connectés avec '''select.select'''. Si on a une nouvelle client, on accepte sa connexion et reçoit son adresse et son identifiant. Dés que les clients sont connectes, le serveur reçoit l’information de l'orientation du vent du robot 1, ajoute cette information au tableau de coordonnées, et il repasse cette information vers les deux robots.  
 
En commençant par le serveur, nous devons d'abord lui associer une adresse IP et un numéro de port, qui seront utilisés par les clients pour se connecter. Après cela, nous avons mis le serveur en attente de nouvelles demandes de connexion. Le serveur étant prêt, il gère les demandes de connexion et les clients déjà connectés avec '''select.select'''. Si on a une nouvelle client, on accepte sa connexion et reçoit son adresse et son identifiant. Dés que les clients sont connectes, le serveur reçoit l’information de l'orientation du vent du robot 1, ajoute cette information au tableau de coordonnées, et il repasse cette information vers les deux robots.  
39

modifications