616
Modélisation, Architectures logicielles et matérielles / Re : Modélisation logicielle d'un réseau - le système de Jean-Luc
« le: mars 08, 2016, 09:20:50 am »
J'ai bien conscience que ça va "polluer" ton exposé, mais je me pose quelques questions :
Le simple fait de mettre #define DEBUG au début suffit pour pouvoir afficher les essais ?
Tu mets les sorties Serial.print() entre #ifdef DEBUG .... #endif et elles sont affichées et si tu dévalides le #define DEBUG pour ne plus les afficher.
C'est sympa, ça.
J'ai adoré le :
Et, dans mes efforts pour comprendre les pointeurs, je choisis "venantDe". Exemple :
Au début, il y a une étoile : Voie *venantDe
J'en déduis que c'est un pointeur ?
Puis, un peu plus loin dans un test, tu as : if (venantDe == mVoieSortantDroit)
Et là, c'est le contenu de la variable ?
Peux-tu m'expliquer la nuance ? C'est là que je bute.
Dommage, c'est une notion fondamentale.
Pour moi, si *venantDe est un pointeur, pour avoir le contenu, tu mets &venantDe...
D'avance, merci
Code: [Sélectionner]
#ifdef __AVR__
#include <avr/pgmspace.h>
#endif
#ifndef __AVR__
#include <iostream>
#define F(string) string
#define PROGMEM
Je ne connais pas ___AVR__ ?Le simple fait de mettre #define DEBUG au début suffit pour pouvoir afficher les essais ?
Tu mets les sorties Serial.print() entre #ifdef DEBUG .... #endif et elles sont affichées et si tu dévalides le #define DEBUG pour ne plus les afficher.
C'est sympa, ça.
J'ai adoré le :
Code: [Sélectionner]
void afficheLigne(byte nb)
{
while(nb--) {
Serial.print('-');
}
Serial.println();
}
C'est tout bête, mais marrant.Et, dans mes efforts pour comprendre les pointeurs, je choisis "venantDe". Exemple :
Code: [Sélectionner]
bool Aiguillage::creeCheminVers(byte identifiant, byte dir, Voie *venantDe)
{
if (idVoie() == identifiant) return true;
else {
if (direction() == dir) {
if (mVoieSortantDroit != NULL) {
if (mVoieSortantDroit->creeCheminVers(identifiant, dir, this)) {
afficheNomVoie(idVoie());
Serial.println(F(": droit"));
return true;
}
else if (mVoieSortantDevie != NULL) {
if (mVoieSortantDevie->creeCheminVers(identifiant, dir, this)) {
afficheNomVoie(idVoie());
Serial.println(F(": devie"));
return true;
}
else return false;
}
else return false;
}
else return false;
}
else {
if (mVoieEntrant != NULL) {
if (mVoieEntrant->creeCheminVers(identifiant, dir, this)) {
afficheNomVoie(idVoie());
if (venantDe == mVoieSortantDroit) {
Serial.println(F(": droit"));
}
else {
Serial.println(F(": devie"));
}
return true;
}
else return false;
}
else return false;
}
}
}
Au début, il y a une étoile : Voie *venantDe
J'en déduis que c'est un pointeur ?
Puis, un peu plus loin dans un test, tu as : if (venantDe == mVoieSortantDroit)
Et là, c'est le contenu de la variable ?
Peux-tu m'expliquer la nuance ? C'est là que je bute.
Dommage, c'est une notion fondamentale.
Pour moi, si *venantDe est un pointeur, pour avoir le contenu, tu mets &venantDe...
D'avance, merci