Scope of variables !?


hello all, not understand why scketch  works !
when send udp string "fichier=test.txt" console displays different variables (fich , fich_2)
code: [select]
#include <spi.h>         // needed arduino versions later 0018
#include <ethernet.h>
#include <ethernetudp.h>  
#include <sd.h>

byte mac[] = {  
 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed };
ipaddress ip(192, 168, 1, 30);
//ipaddress ip(169,254,11,30);
unsigned int localport = 8080;    

char packetrecu[udp_tx_packet_max_size]; //buffer hold incoming packet,
char  packetenvoi;  //  string envoyer
int lon;
string recu;
file root;
file file;
string fich;
file myfile;
char fich_2;//pour le nom du fichier traiter
int lu ;//variable pour stoker les char lu dans le fichier

ethernetudp udp;// ethernetudp instance let send , receive packets on udp

//------------------------------------------------------------------
//------------------------------------------------------------------
void setup() {
 
 ethernet.begin(mac,ip);
 udp.begin(localport);
 serial.begin(9600);
   
 if (!sd.begin(4))
 {
//serial.println("initialization failed!");
   return;
 }
//serial.println("initialization done.");
 root = sd.open("/");
//serial.println("done!");
 }
 
//------------------------------------------------------------------
//------------------------------------------------------------------

void loop() {
 // if there's data available, read packet
 int packetsize = udp.parsepacket();
 if(packetsize)
 {
   memset(packetrecu, 0, udp_tx_packet_max_size);//vide le buffer
   
   serial.print("received packet of size ");
   serial.println(packetsize);
   serial.print("from ");
   ipaddress remote = udp.remoteip();
   for (int =0; < 4; i++)
   {
     serial.print(remote[i], dec);
     if (i < 3)
     {
       serial.print(".");
     }
   }
   serial.print(", port ");
   serial.println(udp.remoteport());
   
   // read packet packetbufffer
   udp.read(packetrecu,udp_tx_packet_max_size);
   serial.print("packetrecu = ");
   serial.println(packetrecu);
   
   string recu =  packetrecu;
//------------------------------------------------------------------
//------------------------------------------------------------------


if (recu == "connexion")
 {
   printdirectory(root);
 }
 
 //------------------------------------------------------------------
 //--------------------------ouvre_fichier---------------------------
 //------------------------------------------------------------------
 
 if (recu.startswith("fichier="))//si la chaine recu commence par :
 {
  fich = recu.substring(8); //extrai de la chaine recu le nom du fichier traiter (recu-fichier=)
  serial.print("nom du fichier = ");
  serial.println(fich);
  int lon = fich.length();
  char fich_2[lon-1]; //pour dimensionner le tableau au bonnes dimensions!!important!
  fich.tochararray(fich_2,lon-1);//pour convertir le string en char (le type reconnu pour l'instruction sd)
  serial.print("nom du fichier en type char = ");
  serial.println(fich_2);  
   //ouvre_fichier();
   }
 
 


//------------------------------------------------------------------
//------------------------------------------------------------------
 } //fin if(packetsize)
 //delay(10);
}//fin loop

//------------------------------------------------------------------
//-----------------fonction_liste des fichiers----------------------
//------------------------------------------------------------------

void printdirectory(file dir)
{
  while(true) {
   
    file entry =  dir.opennextfile();
    if (! entry) {
      // no more files
      // return first file in directory
      dir.rewinddirectory();
     break;
    }
   serial.print(entry.name());
   
   udp.beginpacket(udp.remoteip(), udp.remoteport());
   udp.write(entry.name());
   udp.endpacket();
   
  }
 
}

but want function dedicate
the console dont displays  my variables , function not work!
why? scope of variables? or lack of arguments in function call?
code: [select]
#include <spi.h>         // needed arduino versions later 0018
#include <ethernet.h>
#include <ethernetudp.h>  
#include <sd.h>

byte mac[] = {  
 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed };
ipaddress ip(192, 168, 1, 30);
//ipaddress ip(169,254,11,30);
unsigned int localport = 8080;    

char packetrecu[udp_tx_packet_max_size]; //buffer hold incoming packet,
char  packetenvoi;  //  string envoyer
int lon;
string recu;
file root;
file file;
string fich;
file myfile;
char fich_2;//pour le nom du fichier traiter
int lu ;//variable pour stoker les char lu dans le fichier

ethernetudp udp;// ethernetudp instance let send , receive packets on udp

//------------------------------------------------------------------
//------------------------------------------------------------------
void setup() {
 
 ethernet.begin(mac,ip);
 udp.begin(localport);
 serial.begin(9600);
   
 if (!sd.begin(4))
 {
//serial.println("initialization failed!");
   return;
 }
//serial.println("initialization done.");
 root = sd.open("/");
//serial.println("done!");
 }
 
//------------------------------------------------------------------
//------------------------------------------------------------------

void loop() {
 // if there's data available, read packet
 int packetsize = udp.parsepacket();
 if(packetsize)
 {
   memset(packetrecu, 0, udp_tx_packet_max_size);//vide le buffer
   
   serial.print("received packet of size ");
   serial.println(packetsize);
   serial.print("from ");
   ipaddress remote = udp.remoteip();
   for (int =0; < 4; i++)
   {
     serial.print(remote[i], dec);
     if (i < 3)
     {
       serial.print(".");
     }
   }
   serial.print(", port ");
   serial.println(udp.remoteport());
   
   // read packet packetbufffer
   udp.read(packetrecu,udp_tx_packet_max_size);
   serial.print("packetrecu = ");
   serial.println(packetrecu);
   
   string recu =  packetrecu;
//------------------------------------------------------------------
//------------------------------------------------------------------


if (recu == "connexion")
 {
   printdirectory(root);
 }
 
 //------------------------------------------------------------------
 //--------------------------ouvre_fichier---------------------------
 //------------------------------------------------------------------
 
 if (recu.startswith("fichier="))//si la chaine recu commence par :
 {
    ouvre_fichier();
  }
 
 


//------------------------------------------------------------------
//------------------------------------------------------------------
 } //fin if(packetsize)
 //delay(10);
}//fin loop

//------------------------------------------------------------------
//-----------------fonction_liste des fichiers----------------------
//------------------------------------------------------------------

void printdirectory(file dir)
{
  while(true) {
   
    file entry =  dir.opennextfile();
    if (! entry) {
      // no more files
      // return first file in directory
      dir.rewinddirectory();
     break;
    }
   serial.print(entry.name());
   
   udp.beginpacket(udp.remoteip(), udp.remoteport());
   udp.write(entry.name());
   udp.endpacket();
   
  }
 
}
//------------------------------------------------------------------
//---------------------fonction_li_fichier--------------------------
//------------------------------------------------------------------

void ouvre_fichier()
{
 
  fich = recu.substring(8); //extrai de la chaine recu le nom du fichier traiter (recu-fichier=)
  serial.print("nom du fichier = ");
  serial.println(fich);
  int lon = fich.length();
  char fich_2[lon-1]; //pour dimensionner le tableau au bonnes dimensions!!important!
  fich.tochararray(fich_2,lon-1);//pour convertir le string en char (le type reconnu pour l'instruction sd)
  serial.print("nom du fichier en type char = ");
  serial.println(fich_2);
   
}

i pasted code in second box arduino ide. "error" got was:
code: [select]
binary sketch size: 22760 bytes (of 30720 byte maximum)
what error(s) seeing when compiling? or having run-time issues? isn't clear problem is.


Arduino Forum > Using Arduino > Programming Questions > Scope of variables !?


arduino

Comments

Popular posts from this blog

Joomla site hacked, cant see front and - Joomla! Forum - community, help and support

Christian Home School Programs - Joomla! Forum - community, help and support

Trouble with PF_OutFlag_I_USE_AUDIO and PF_CHECKOUT_LAYER_AUDIO