Outils pour utilisateurs

Outils du site


tppic

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tppic [2019/03/14 20:14]
bvandepo
tppic [2020/03/03 16:28] (Version actuelle)
bvandepo
Ligne 46: Ligne 46:
 copier coller dans une console: copier coller dans une console:
 </color> </color>
-  rsync -av --delete ~/TCPIP_Demo_App_etudiant /mnt/etu/s4+  rsync -av --delete ~/TCPIP_Demo_App_etudiant /mnt/etu/
  
 <color red> <color red>
Ligne 85: Ligne 85:
   plage @IP statiques (pour les cartes PIC) : 172.16.0.2 - 33   plage @IP statiques (pour les cartes PIC) : 172.16.0.2 - 33
   plage @IP DHCP avec baux statiques (pour les PC) : 172.16.0.34 - 62   plage @IP DHCP avec baux statiques (pour les PC) : 172.16.0.34 - 62
-  IP du PC superviseur : 172.16.0.34+  IP du PC superviseur : 172.16.0.51
 </ifauth> </ifauth>
 <ifauth @au> <ifauth @au>
Ligne 96: Ligne 96:
   plage @IP statiques (pour les cartes PIC) : 172.16.6.2 - 33   plage @IP statiques (pour les cartes PIC) : 172.16.6.2 - 33
   plage @IP DHCP avec baux statiques (pour les PC) : 172.16.6.34 - 62   plage @IP DHCP avec baux statiques (pour les PC) : 172.16.6.34 - 62
-  IP du PC superviseur : 172.16.6.34  +  IP du PC superviseur : 172.16.6.48  
 </ifauth> </ifauth>
  
Ligne 103: Ligne 103:
  
 Ce VLAN utilise des adresses en /26 et possède donc un masque 255.255.255.192.  Ce VLAN utilise des adresses en /26 et possède donc un masque 255.255.255.192. 
-<ifauth @en>L'adresse IP 172.16.0.34 est attribuée dynamiquement au PC superviseur grâce à un bail DHCP.</ifauth>  +<ifauth @en>L'adresse IP 172.16.0.51 est attribuée dynamiquement au PC superviseur grâce à un bail DHCP.</ifauth>  
-<ifauth @au>L'adresse IP 172.16.6.34 est attribuée dynamiquement au PC superviseur grâce à un bail DHCP.</ifauth> +<ifauth @au>L'adresse IP 172.16.6.48 est attribuée dynamiquement au PC superviseur grâce à un bail DHCP.</ifauth> 
 Chaque carte PIC numérotée x doit être configurée pour avoir une adresse statique différente en fonction du numéro de la carte. Chaque carte PIC numérotée x doit être configurée pour avoir une adresse statique différente en fonction du numéro de la carte.
 <ifauth @en>La carte PIC numérotée x est adressée par l'IP 172.16.0.x.</ifauth> <ifauth @en>La carte PIC numérotée x est adressée par l'IP 172.16.0.x.</ifauth>
Ligne 143: Ligne 143:
  
 <ifauth @en> <ifauth @en>
-  - En émission: Superviseur avec l'IP 172.16.0.34  et le port UDP 30002+10*x vers carte PIC avec l'IP   172.16.0.x  et le port 30002+10*x +  - En émission: Superviseur avec l'IP 172.16.0.51  et le port UDP 30002+10*x vers carte PIC avec l'IP   172.16.0.x  et le port 30002+10*x 
-  - En réception: Carte PIC avec l'IP 172.16.0.x  et le port UDP 30001+10*x vers Superviseur avec l'IP 172.16.0.34 et le port  30001+10*x+  - En réception: Carte PIC avec l'IP 172.16.0.x  et le port UDP 30001+10*x vers Superviseur avec l'IP 172.16.0.51 et le port  30001+10*x
 Par exemple, l'application 3 communiquant avec la carte PIC 3 émet ses informations vers l'IP PIC 172.16.0.3 port 30032 et les reçoit sur le port 30031. La figure suivante montre la fenêtre de cette application: Par exemple, l'application 3 communiquant avec la carte PIC 3 émet ses informations vers l'IP PIC 172.16.0.3 port 30032 et les reçoit sur le port 30031. La figure suivante montre la fenêtre de cette application:
  
Ligne 151: Ligne 151:
  
 <ifauth @au> <ifauth @au>
-  - En émission: Superviseur avec l'IP 172.16.6.34  et le port UDP 30002+10*x vers carte PIC avec l'IP   172.16.6.x  et le port 30002+10*x +  - En émission: Superviseur avec l'IP 172.16.6.48  et le port UDP 30002+10*x vers carte PIC avec l'IP   172.16.6.x  et le port 30002+10*x 
-  - En réception: Carte PIC avec l'IP 172.16.6.x  et le port UDP 30001+10*x vers Superviseur avec l'IP 172.16.6.34 et le port  30001+10*x+  - En réception: Carte PIC avec l'IP 172.16.6.x  et le port UDP 30001+10*x vers Superviseur avec l'IP 172.16.6.48 et le port  30001+10*x
    
 Par exemple, l'application 3 communiquant avec la carte PIC 3 émet ses informations vers l'IP PIC 172.16.6.3 port 30032 et les reçoit sur le port 30031. La figure suivante montre la fenêtre de cette application: Par exemple, l'application 3 communiquant avec la carte PIC 3 émet ses informations vers l'IP PIC 172.16.6.3 port 30032 et les reçoit sur le port 30031. La figure suivante montre la fenêtre de cette application:
Ligne 304: Ligne 304:
   int sprintf(char* chainecarac, const char * format, ... );   int sprintf(char* chainecarac, const char * format, ... );
   int sscanf(char* chainecarac, const char * format, ... );    int sscanf(char* chainecarac, const char * format, ... ); 
-La fonction strlen retourne le nombre de caractères d'une chaîne **chainecarac** terminée par le caractère '\0':+La fonction strlen retourne le nombre de caractères d'une chaîne **chainecarac** terminée par le caractère '\0' (sans compter le caractère '\0'):
    int strlen(char* chainecarac);    int strlen(char* chainecarac);
 ===Lecture de l'état des boutons=== ===Lecture de l'état des boutons===
Ligne 367: Ligne 367:
 ==Lancement de l'outils de développement== ==Lancement de l'outils de développement==
   - Brancher la carte de développement sur le port USB du PC.   - Brancher la carte de développement sur le port USB du PC.
-  - Lancer mplabX, Menu Applications->Programmation->Mplab IDE+  - Lancer mplabX, en ouvrant un terminal et en saisissant mplab_ide
   - Dans mplabX, cliquer sur  File->Open project et choisir le projet Projet.X dans le dossier ~/TCPIP_Demo_App_etudiant      - Dans mplabX, cliquer sur  File->Open project et choisir le projet Projet.X dans le dossier ~/TCPIP_Demo_App_etudiant   
   - Par la suite, en cas de message d'erreur indiquant que la carte ne peut pas être réinitialisée, il faudra fermer MPLABX et le relancer.   - Par la suite, en cas de message d'erreur indiquant que la carte ne peut pas être réinitialisée, il faudra fermer MPLABX et le relancer.
Ligne 382: Ligne 382:
 Le suffixe ul apres la valeur 100 signifie que la valeur est une constante à interpréter en tant que **Unsigned Long**.  Le suffixe ul apres la valeur 100 signifie que la valeur est une constante à interpréter en tant que **Unsigned Long**. 
 ==Chargement de votre programme et utilisation du mode debug== ==Chargement de votre programme et utilisation du mode debug==
-  - Cliquer sur Debug->Debug project. NB: la première compilation est lente (qq minutes) mais les suivantes seront plus rapides car seuls les fichiers modifiés seront recompilés (sauf si vous modifiez « TCPIPConfig PIC32 Internal Ethernet.h ») .+  - Cliquer sur Debug->Debug project. NB: la première compilation est lente (qq dizaines de secondes) mais les suivantes seront plus rapides car seuls les fichiers modifiés seront recompilés (sauf si vous modifiez « TCPIPConfig PIC32 Internal Ethernet.h ») . Quand "User Program Running" s'affiche dans la fenêtre sous le code, la compilation et le chargment de l'application sont terminées.
   - Placer des points d'arrêt dans votre programme, en cliquant sur le numéro de la ligne (petit carré rouge apparaît), pour le désactiver, cliquer à nouveau sur le carré.   - Placer des points d'arrêt dans votre programme, en cliquant sur le numéro de la ligne (petit carré rouge apparaît), pour le désactiver, cliquer à nouveau sur le carré.
   - Presser Debug->debug project pour charger le programme dans le micro contrôleur et lancer le mode debug (Debug->Finish debugger session)   - Presser Debug->debug project pour charger le programme dans le micro contrôleur et lancer le mode debug (Debug->Finish debugger session)
Ligne 428: Ligne 428:
  
 ====Exercice 3: Réception de commandes des LED ==== ====Exercice 3: Réception de commandes des LED ====
-  - Compléter les fonctions **etudiantSocketAppInit()** et **etudiantSocketAppTask()** pour gérer la réception périodique des chaînes de caractères commandant les LED depuis le PC superviseur. Pour cela, vous devrez ouvrir un socket écoutant sur le bon numéro de port et depuis n'importe quelle IP.  Veillez à définir un tableau de caractères en mémoire et à ne pas tenter de lire plus de caractères qu'il n'y a de place dans ce tableau. Vous pourrez au choix traiter un ordre de commutation des LEDS par appel de la fonction **etudiantSocketAppTask()** ou bien traiter autant d'ordre que possible (en fonction de la taille de votre tableau)+  - Compléter les fonctions **etudiantSocketAppInit()** et **etudiantSocketAppTask()** pour gérer la réception périodique des chaînes de caractères commandant les LED depuis le PC superviseur. Pour cela, vous devrez ouvrir un socket écoutant sur le bon numéro de port et depuis n'importe quelle IP.  Veillez à définir un tableau de caractères en mémoire et à ne pas tenter de lire plus de caractères qu'il n'y a de place dans ce tableau. Vous pourrez au choix traiter un ordre de commutation des LEDS par appel de la fonction **etudiantSocketAppTask()** ou bien traiter autant d'ordres que possible (en fonction de la taille de votre tableau)
   - Vous penserez à commenter **UNIQUEMENT** les lignes de votre programme qui pilotent les leds à partir de l'état des boutons pour ne pas interférer avec la commande des LEDs depuis le réseau. Conserver tout le reste du code en place, notamment la lecture de l'état des boutons et l'affichage de la chaine dans **DBPRINTF**.   - Vous penserez à commenter **UNIQUEMENT** les lignes de votre programme qui pilotent les leds à partir de l'état des boutons pour ne pas interférer avec la commande des LEDs depuis le réseau. Conserver tout le reste du code en place, notamment la lecture de l'état des boutons et l'affichage de la chaine dans **DBPRINTF**.
   - Tester votre programme en demandant sur le PC superviseur, via l'application BroadcastReceiver qui communique avec votre carte PIC, de commuter chacune des LEDs.   - Tester votre programme en demandant sur le PC superviseur, via l'application BroadcastReceiver qui communique avec votre carte PIC, de commuter chacune des LEDs.
Ligne 443: Ligne 443:
   echo fini   echo fini
 ====Exercice 4: Émission de l'état des boutons ==== ====Exercice 4: Émission de l'état des boutons ====
-  - Compléter les fonctions **etudiantSocketAppInit()** et **etudiantSocketAppTask()** pour gérer l'envoi périodique à une fréquence d'un Hertz d'une chaîne de caractères codant l'état des boutons poussoirs vers le PC superviseur. +  - Compléter les fonctions **etudiantSocketAppInit()** et **etudiantSocketAppTask()** pour gérer l'envoi périodique à une fréquence d'un Hertz de la chaîne de caractères codant l'état des boutons poussoirs vers le PC superviseur. <color red> La chaîne envoyée sur le socket devra contenir le caractère '\0'. </color>
  
 Pour cette tâche, il faut configurer l'ouverture du socket avec une seule machine sur le réseau. Dans un premier temps, nous n'utiliserons pas le mécanisme ARP et nous devrons donc régler l'adresse IP et l'adresse MAC de la machine distante (le PC superviseur) avant d'ouvrir le socket en définissant une variable globale **NODE_INFO myRemoteNode;** puis en l'initialisant dans la fonction **etudiantSocketAppInit()** avec les valeurs que vous aurez déterminées grâce aux commandes ping et arp: Pour cette tâche, il faut configurer l'ouverture du socket avec une seule machine sur le réseau. Dans un premier temps, nous n'utiliserons pas le mécanisme ARP et nous devrons donc régler l'adresse IP et l'adresse MAC de la machine distante (le PC superviseur) avant d'ouvrir le socket en définissant une variable globale **NODE_INFO myRemoteNode;** puis en l'initialisant dans la fonction **etudiantSocketAppInit()** avec les valeurs que vous aurez déterminées grâce aux commandes ping et arp:
Ligne 657: Ligne 657:
  
 {{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} {{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}}
 +
 +
 +
 + 
 +Mettre à jour le suivi de version en saisissant dans une console:
 +  echo commence
 +  cd ~/TCPIP_Demo_App_etudiant
 +  git commit -a -m'reglage de l'adresse IP  du pc etudiant'
 +  gitk &
 +  echo fini
  
  
tppic.1552590853.txt.gz · Dernière modification: 2019/03/14 20:14 de bvandepo