Pages: [1]   Go Down
Author Topic: Besoin d'explication sur client.read  (Read 780 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 0
Posts: 207
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Quand on s'amuse avec l'ethernet shield, avec lexemple suivant on peut lire les infos retournés par google sur arduino :

void setup()
{
Ethernet.begin(mac, ip);
Serial.begin(9600);


delay(1000);


Serial.println("connecting...");


if (client.connect()) {
Serial.println("connected");
client.println("GET /search?q=arduino HTTP/1.0");
client.println();
} else {
Serial.println("connection failed");
}
}


void loop()
{
if (client.available()) {
char c = client.read();
Serial.print(c);
}


if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
for(;smiley-wink
;
}
}


Je ne comprends pas :

if (client.available()) {
char c = client.read();
Serial.print(c);
}

Parce que 'c' est un caractere, on est ok ?

donc on lit 'c' et on limprime

je ne comprends pas comment, sans boucle, on peut lire tout ce qui vient du serveur

on aurait du boucle du style

while (il y a des donnees a lire)
{
char c = client.read();
Serial.print(c);
}

je comprendrais mais là je ne comprends pas comment cette fonction arrive a afficher des phrases et des phrases...

Merci pour vos lumières !
Logged

France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3436
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En fait la fonction loop est une boucle infinie cachée.
L'explication se trouve là :http://arduino.cc/en/Reference/Loop
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 207
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ah ba oui, ok, merci !
Logged

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Et je me demande si ça devrait pas être

while (client.available() > 0) {

}

si client.available() donne un nombre d'octets encore pas lus et pas un booléen. (dépends de la librairie, c'est le cas avec le port série en tout cas)
« Last Edit: July 24, 2009, 09:59:07 am by julien@pobot.org » Logged

Pages: [1]   Go Up
Jump to: