Go Down

Topic: read SD card on website with webduino (Read 787 times) previous topic - next topic


Mar 22, 2013, 12:11 pm Last Edit: Mar 22, 2013, 02:53 pm by Roxas77 Reason: 1
Hi ,
I need to read SD card on website  , i get the exemple "printDirectory" from Arduino and i replace 'Serial' by 'webserver' like that :

Code: [Select]
void printDirectory(WebServer &server, File dir, int numTabs) { // la fonctin reçoit le rép et le décalage tab
  while(true) { // tant que vrai = crée une "loop" qui séxécute tant que contenu
  // la sortie se fait par break;
    File entry =  dir.openNextFile(); // ouvre le fichier ou repertoire suivant
    if (! entry) { // si aucun nouveau fichier /repertoire
      //Serial.println("** pas d'autre fichier ou repertoires**");
      break; // sort de la fonction
    } // fin si aucun nouveau fichier / répertoire
    // affiche le nombre de tab voulu - 0 si racine, 1 si sous Rép, 2 si sous-sous rép, etc..
    for (int i=0; i<numTabs; i++) {
    Serial.print(entry.name()); // affiche le nom du fichier/repertoire
    if (entry.isDirectory()) { // si le fichier est un répertoire
      server.println("/"); // affiche un slash
      printDirectory(server,entry, numTabs+1); // affiche le contenu en décalant d'un tab
    } // fin si le fichier est un répertoire
    else { // sinon affiche la taille - les fichiers ont une taille, pas les répertoires
      // files have sizes, directories do not
      server.print("\t\t"); // affiche de Tab de décalé
      server.print(entry.size(), DEC); // affiche la taille
      server.println(" octets"); // affiche la taille
    } // fin sinon = si pas un rép
  } // fin while(true)
} // fin fonction

And i print like that :

Code: [Select]
void defaultCmd(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
 if (type == WebServer::POST)
   // ignore POST data

 /* for a GET or HEAD, send the standard "it's all OK headers" */
 /* we don't output the body for a HEAD request */
 if (type == WebServer::GET)
   /* store the HTML in program memory using the P macro */
   P(message1) =
     "<html><head><title >Simulateur </title></head>"
     "<body style=\"text-align:left;\">"    
     "<div style=\"font-size:200%;font-weight:bold; border: 2px black solid;\">";
   P(message2) =    
     "<span style=\"text-indent:50%;margin-left:150px;margin-top:25px; \">Simulation thermique</span></div>"
     "<center><h2>Historique des campagnes<h2></center>"
     "<center><aside style=\"width : 20%; height: 80%;border:2px black solid;\">";
   P(message3) =
   loadImage(server, "toto.jpg");
   printDirectory(webserver,myDir, 0); // affiche contenu d'un répertoire avec 0 tab

Code: [Select]
void setup()
 // setup the Ehternet library to talk to the Wiznet board
 Ethernet.begin(mac, serverIP , passerelle , masque );
 /* start the server to wait for connections */
 Serial.println("Initialisation de la SD card...");
 pinMode(53, OUTPUT);
 if (!SD.begin(4)) {
   Serial.println("Erreur à l'init!");
 else {
   Serial.println("Initialisation reussie !");
 myDir = SD.open("/");// ouvre la carte SD a la racine
 /* register our default command (activated with the request of * http://x.x.x.x/ */

And it's doesn't work .

I find the error , it's here :
Code: [Select]
File entry =  dir.openNextFile(); // open the next file or directory
    if (! entry) { // if no file/directory
      Serial.println("** no other file/directory**");
      break; // sort de la fonction
    } // end if

But i don't know how resolve it . Because when i start in "Serial" , it's works ....

Sorry for my english ^^' if you don't understand say it me thanks :) .

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131