Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
tppic [2019/03/09 18:12] bvandepo |
tppic [2020/02/26 12:00] bvandepo |
||
---|---|---|---|
Ligne 46: | Ligne 46: | ||
copier coller dans une console: | copier coller dans une console: | ||
</ | </ | ||
- | rsync -av --delete ~/ | + | rsync -av --delete ~/ |
<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 @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 |
</ | </ | ||
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> | + | <ifauth @en> |
- | <ifauth @au> | + | <ifauth @au> |
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 @en>La carte PIC numérotée x est adressée par l'IP 172.16.0.x.</ | ||
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' | + | - En émission: Superviseur avec l'IP 172.16.0.51 et le port UDP 30002+10*x vers carte PIC avec l' |
- | - En réception: Carte PIC avec l'IP 172.16.0.x | + | - En réception: Carte PIC avec l'IP 172.16.0.x |
Par exemple, l' | Par exemple, l' | ||
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' | + | - En émission: Superviseur avec l'IP 172.16.6.48 et le port UDP 30002+10*x vers carte PIC avec l' |
- | - En réception: Carte PIC avec l'IP 172.16.6.x | + | - En réception: Carte PIC avec l'IP 172.16.6.x |
Par exemple, l' | Par exemple, l' | ||
Ligne 323: | Ligne 323: | ||
====Remarques importantes: | ====Remarques importantes: | ||
- | - Ne brancher le câble réseau sur l' | + | - Dans tout le TP, vous veillerez à ne pas commenter ou casser du code précédemment validé. Chaque exercice doit ajouter des fonctionnalités, |
+ | - Ne brancher le câble réseau sur l' | ||
- Les cartes PIC ainsi que les câbles réseaux sont numérotés, | - Les cartes PIC ainsi que les câbles réseaux sont numérotés, | ||
- Votre application est contenue uniquement dans les fichiers etudiantSocketApp.c et etudiantSocketApp.h. Vous n'avez pas à modifier d' | - Votre application est contenue uniquement dans les fichiers etudiantSocketApp.c et etudiantSocketApp.h. Vous n'avez pas à modifier d' | ||
Ligne 363: | Ligne 364: | ||
Vous pouvez ensuite fermer l' | Vous pouvez ensuite fermer l' | ||
| | ||
- | ==Note importante== | ||
- | <color red> | ||
- | Dans tout le TP, vous veillerez à ne pas commenter ou casser du code précédemment validé. Chaque exercice doit ajouter des fonctionnalités, | ||
- | |||
- | |||
- | </ | ||
| | ||
==Lancement de l' | ==Lancement de l' | ||
- 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, | + | - Lancer mplabX, |
- Dans mplabX, cliquer sur File-> | - Dans mplabX, cliquer sur File-> | ||
- Par la suite, en cas de message d' | - Par la suite, en cas de message d' | ||
Ligne 387: | 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-> | + | - Cliquer sur Debug-> |
- Placer des points d' | - Placer des points d' | ||
- Presser Debug-> | - Presser Debug-> | ||
Ligne 433: | 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' | + | - 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' |
- Vous penserez à commenter **UNIQUEMENT** les lignes de votre programme qui pilotent les leds à partir de l' | - Vous penserez à commenter **UNIQUEMENT** les lignes de votre programme qui pilotent les leds à partir de l' | ||
- Tester votre programme en demandant sur le PC superviseur, | - Tester votre programme en demandant sur le PC superviseur, | ||
Ligne 484: | Ligne 479: | ||
bool ARPIsResolved(type pointeur sur adresse IP, type pointeur sur adresse MAC) | bool ARPIsResolved(type pointeur sur adresse IP, type pointeur sur adresse MAC) | ||
- | Dans la fonction **etudiantSocketAppTask()**, | + | Dans la fonction **etudiantSocketAppTask()**, |
<color red> | <color red> | ||
Il est important que la fonction **etudiantSocketAppTask()** soit NON BLOQUANTE!</ | Il est important que la fonction **etudiantSocketAppTask()** soit NON BLOQUANTE!</ | ||
- | < | + | < |
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
// Finite State Machine .dot diagram autogenerated by FsmProcess V 1.0 B. VANDEPORTAELE LAAS-CNRS 2016 | // Finite State Machine .dot diagram autogenerated by FsmProcess V 1.0 B. VANDEPORTAELE LAAS-CNRS 2016 | ||
Ligne 498: | Ligne 494: | ||
nodesep=0.1; | nodesep=0.1; | ||
/////////////////////////////////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
- | // Finite State Machine Name: arp | + | // Finite State Machine Name: arp2 |
/////////////////////////////////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
////////////////// | ////////////////// | ||
Ligne 516: | Ligne 512: | ||
//Action on state: | //Action on state: | ||
stateaction_1 | stateaction_1 | ||
- | < | + | < |
</ | </ | ||
//attach the action on the state | //attach the action on the state | ||
state_1 -> | state_1 -> | ||
- | | ||
- | // | ||
- | { rank = same; | ||
- | state_2 [shape=circle, | ||
- | //Action on state: | ||
- | stateaction_2 | ||
- | < | ||
- | </ | ||
- | //attach the action on the state | ||
- | state_2 -> | ||
| | ||
////////////////// | ////////////////// | ||
state_0 -> state_1[ shape=box, | state_0 -> state_1[ shape=box, | ||
- | < | + | < |
- | </TABLE>> ]; | + | <TR><TD>F</TD><TD COLSPAN=" |
- | state_1 -> state_2[ shape=box, | + | |
- | <TR><TD COLSPAN=" | + | |
</ | </ | ||
} | } | ||
- | |||
</ | </ | ||
+ | Pour débugger, vous pourrez afficher l' | ||
+ | sprintf(chaine, | ||
+ | DBPRINTF(chaine); | ||
+ | Puis afficher l' | ||
+ | sprintf(chaine, | ||
+ | DBPRINTF(chaine); | ||
+ | | ||
Ligne 667: | Ligne 657: | ||
{{http:// | {{http:// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Mettre à jour le suivi de version en saisissant dans une console: | ||
+ | echo commence | ||
+ | cd ~/ | ||
+ | git commit -a -m' | ||
+ | gitk & | ||
+ | echo fini | ||