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:15] 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 367: | Ligne 367: | ||
==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 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-> | + | - Cliquer sur Debug-> |
- Placer des points d' | - Placer des points d' | ||
- Presser Debug-> | - Presser Debug-> | ||
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' | + | - 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 479: | 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 493: | Ligne 494: | ||
nodesep=0.1; | nodesep=0.1; | ||
/////////////////////////////////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
- | // Finite State Machine Name: arp | + | // Finite State Machine Name: arp2 |
/////////////////////////////////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
////////////////// | ////////////////// | ||
Ligne 511: | 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 662: | 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 | ||