Show Posts
Pages: [1] 2
1  International / Software / Re: Dimensione del file binario dello sketch - arduino impazzito on: November 26, 2012, 02:03:22 pm
Quote
         if(readString.indexOf("A=2") > 0)
          {               //  CONTROLLO TENDE COMANDO INTERMEDIO
            digitalWrite(outPin2, HIGH);   //  Attivo il rele di salita
            delay(500);              
            digitalWrite(outPin2, LOW);      

            delay(40000);         //  Imposto il tempo di salita

            digitalWrite(outPin3, HIGH);   //  Disattivo il rele di discesa
            delay(500);            
            digitalWrite(outPin3, LOW);           

            delay(16000);              //  Imposto il tempo perche' la tenda arrivi nel mezzo

            digitalWrite(outPin4, HIGH);        //  Attivo il relo di Stop
            delay(500);            //
            digitalWrite(outPin4, LOW);      //  ----------------------
            Z=1;
           }









          // COSTRUZIONE PAGINA HTML

          client.println("HTTP/1.1 200 OK.....");

          client.println("Content-Type: text/html");

          client.println();

          // inizializzo pagina (da togliere se uso ajax)

          client.println("<html><head><title>DomusGate</title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' ></head><body>");

          
          
          //inizai il body
        
          client.println("<div style='width:400px; height:600px;'>"); //risoluzione per nokia 5800 640x360      
                            
          client.println("<h1>DomusGate</h1>");
  
          client.println("<h3><p>Temperatura interna = ");
          client.print(sensors.getTempCByIndex(0));
          client.println(" C <br /></p></h3>");
    
          client.println("<br />");

          client.println("<hr>");

          client.println("<br />");

          client.println("<h2>APRICANCELLO</h2>");      

          //client.print("<h3><a href='/?L=1'>APRI</a></h3>");
          client.print("<h2><input type=\"button\" style=\"width:240px ;background-color:#E4E4E4; color:#000000; height:60px\" value=\"Cancello\" onclick =\" location.href='/?L=1'\"></h2>");
                    
          client.println("<br />");

          client.println("<hr>");        

          client.println("<hr>");              

          client.println("<h2>CONTROLLO TENDE</h2>");      

          
          //client.print("<h3><a href='/?A=1'>SU</a></h3>");
          client.print("<h2><input type=\"button\" style=\"width:240px ;background-color:#7FFF00; color:#000000; height:60px\" value=\"tenda su\" onclick =\" location.href='/?A=1'\"></h2>");        
                            
          //client.print("<h3><a href='/?H=4'>STOP</a></h3>");
          client.print("<h2><input type=\"button\" style=\"width:240px ;background-color:#FF0000; color:#000000; height:60px\" value=\"stop\" onclick =\" location.href='/?H=4'\"></h2>");  
          
          //client.print("<h3><a href='/?A=3'>GIU</a></h3>");
          client.print("<h2><input type=\"button\" style=\"width:240px ;background-color:#008800; color:#000000; height:60px\" value=\"tenda giu'\" onclick =\" location.href='/?A=3'\"></h2>");
      
      
          //client.print("<h3><a href='/?A=2'>INTERMEDIO</a></h3>");              
          client.print("<h2><input type=\"button\" style=\"width:240px ;background-color:#FFD700; color:#000000; height:60px\" value=\"tenda mezzo\" onclick =\" location.href='/?A=2'\"></h2>");
      
          client.println("<br />");

          client.println("<hr>");       

          client.println("<hr>");        


                    
          if (X==3)
          {   client.print("<h4><a href='/?D=1'>DESTRA</a></h4>");              

              client.print("<h4><a href='/?S=1'>SINISTRA</a></h4>");
          }
          
          if (X==2)
          {  
              client.print("<h4><a href='/?E=1'>ENTRAMBE</a></h4>");
          }
            
          if (X==1)
          {  
              client.print("<h4><a href='/?E=1'>ENTRAMBE</a></h4>");
          }
          
          
            
          //client.print("<input type=\"button\" style=\"width:120px ;background-color:#c00; color:#fff; height:80px\" value=\"Aggiorna\" onclick =\" location.href='/'\">");
          
          // chiudo il div

          client.println("</div>");

          client.println("</body></html>");

          if (Z==1)
          { //client.print ("<meta http-equiv=\"refresh\" content=\"5\">");
          client.println("<META HTTP-EQUIV=REFRESH CONTENT=2;url=http://mioip/>");
          }  
          else
          { Z=0;
          }

          // pulisco la stringa per la successiva lettura

          readString="";

          //fermo il client

          client.stop();



        } //if c == /n

      } // if client available

    } // while client connesso

  } // FINE if client

} // fine loop

2  International / Software / Re: Dimensione del file binario dello sketch - arduino impazzito on: November 26, 2012, 02:01:38 pm
Quote
/*****
 * COMPILARE CON ARDUINO 1.0 o successive
 ******/

#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 6

// Setup a oneWire instance to communicate with any OneWire devices 
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

///////////////////////////////////////////////////////////////////

byte mac[] = {
  0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 }; // mac address
byte ip[] = {
  192,168,1,7 }; // ip arduino internet in
byte gateway[] = {
  192,168,1,1 }; // internet access via router
byte subnet[] = {
  255, 255, 255, 0 }; //subnet mask

EthernetServer server(80); //server port


//definizione attuatori
int outPin = 2; // pin attuatore cancello
int outPin2 = 3; // pin attuatore tenda su
int outPin3 = 4; // pin attuatore tenda giu
int outPin4 = 5; // pin attuatore tenda metà
int outPin5 = 7; // pin controllo canale
int C = 5;       // Variabile canale
int X = 3;
int Z=0;

String readString; // legge int e assegna l'uscita




void setup()
{
  Ethernet.begin(mac, ip, gateway, subnet);
  pinMode(outPin, OUTPUT); //definisce che il pin e' un uscita
  pinMode(outPin2, OUTPUT);
  pinMode(outPin3, OUTPUT);
  pinMode(outPin4, OUTPUT);
  pinMode(outPin5, OUTPUT);
  //Serial.begin(9600);


  // start serial port
  //Serial.begin(9600);
  //Serial.println("Dallas Temperature IC Control Library Demo");

  // Start up the library
  sensors.begin();
}

void rele_ch()
{  digitalWrite(7,HIGH);
   delay(500);
}
void rele_cd()
{  digitalWrite(7,LOW);
   delay(500);
}

void loop()
{
  Z=0;

  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
  //Serial.print(" Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  //Serial.println("DONE");

  //Serial.print("Temperature for Device 1 is: ");
  sensors.getTempCByIndex(0); // Why "byIndex"?
  // You can have more than one IC on the same bus.
  // 0 refers to the first IC on the wire



  /*inizio client*/

  EthernetClient client = server.available();

  if (client) {

    boolean currentLineIsBlank = true;

    while (client.connected()) {

      if (client.available()) {
        char c = client.read();
        readString.concat(c);               //store characters to string
        //if HTTP request has ended
                        
        if (c == '\n' && currentLineIsBlank) {

          if(readString.indexOf("D=1") > 0)
          {
            C=1;   //  CONTROLLO CANALE
          }
          if(readString.indexOf("S=1") > 0)
          {
            C=2;   //  CONTROLLO CANALE
          }
          if(readString.indexOf("E=1") > 0)
          {
            C=6;   //  CONTROLLO CANALE
          }


          if(C==1)     // Cambio del canale
          {
            rele_ch();
            rele_cd();
            rele_ch();
            rele_cd();
            C=7;
            X=1;
            Z=1;
          }

          if(C==2)
          {
            rele_ch();
            rele_cd();
            rele_ch();
            rele_cd();
            rele_ch();
            rele_cd();
            C=8;
            X=2;
            Z=1;
          }

          if(C==6)
          { 
            if(X==1)
            {  
              rele_ch();
              rele_cd();
              rele_ch();
              rele_cd();
              rele_ch();
              rele_cd();
              rele_ch();
              rele_cd();
              rele_ch();
              rele_cd();
              C=9;
              X=3;
              Z=1;
            } 
            else
            {
              rele_ch();
              rele_cd();
              rele_ch();
              rele_cd();
              rele_ch();
              rele_cd();
              rele_ch();
              rele_cd();
              C=9;
              X=3;
              Z=1;
            } 
          }   
          
          if(readString.indexOf("L=1") > 0)
          {
            digitalWrite(outPin, HIGH);   //  CONTROLLO CANCELLO
            //Serial.println(outPin);
            delay(1000);
            digitalWrite(outPin, LOW);
            Z=1;
          }

3  International / Software / Re: Dimensione del file binario dello sketch - arduino impazzito on: November 26, 2012, 03:40:35 am
30 kByte di memoria FLASH non di RAM.
Ha 32kByte FLASH (di cui ocupata 0,5 kByte dal Bootloader), 2 kByte RAM e 1 kByte di EEProm che non sono usati da Arduino.
Se ci dai il Sketch possiamo verdere di risparmiare RAM.

Ciao Uwe



  smiley-grin vi ringrazio molto questa sera posto lo sketch!!!
Grazie Mille!!
4  International / Software / Re: Dimensione del file binario dello sketch - arduino impazzito on: November 25, 2012, 03:30:19 pm
L' arduino UNO ha 2kByte percui 2048 byte di RAM.

se hai usato avr-size.exe C:\DOCUME~1\User\IMPOST~1\Temp\build3857425205743446753.tmp\nome_del_vostro_sketch.cpp.elf -C
Per sapere l' ocupazione della RAM é un valore statico che non considera il consumo di RAM per una stampa su un display o la seriale. 120 Byte liberi sono pochissimi.

Il problema che hai é che stai usando piú RAm di quella disponibile.

Ciao Uwe


Ero convinto di avere 30k disponibili.....!!! smiley-eek-blue
5  International / Software / Re: Dimensione del file binario dello sketch - arduino impazzito on: November 25, 2012, 01:05:22 pm
 smiley-roll-sweat

Volevo aggiungere che anche epurando lo sketch....20480 byte caricati....il sistema e' instabile!!!!!!
6  International / Software / Re: Dimensione del file binario dello sketch - arduino impazzito on: November 25, 2012, 10:17:16 am
Ti consiglio intanto la lettura di questa guida:
http://www.leonardomiliani.com/?p=572

E poi ti chiedo se nel tuo sketch usi molte variabili di tipo string, ad esempio per stampare su seriale o su LCD.

Ho eseguito la procedura e questo e' il risultato della memoria
" AVR Memory Usage
----------------
Device: Unknown

Program:   20798 bytes
(.text + .data + .bootloader)

Data:       1916 bytes
(.data + .bss + .noinit) "

Ma non uso molto il comando per stampare essendo un controllo per la domotica
non uso il monitor seriale ne il display LCD.......


7  International / Software / Dimensione del file binario dello sketch - arduino impazzito on: November 24, 2012, 09:48:17 am
La mia configurazione e' arduino uno rev 3 , IDE 1.0.1


Dimensione del file binario dello sketch: 20.758 bytes (su un massimo di 32.256 bytes )

compilando il mio sketch ho ottenuto il risultato sopra riportato ed una volta compilato senza errori e caricato su arduino, questi non funziona più!
Ho letto qualche post , purtroppo in inglese ( che non e' il mio forte ) riguardo un bag sulle dimensioni e sul bootloader.
Infatti togliendo delle librerie ed un sensore con relative istruzioni nello sketch sono sceso sotto la soglia dei 20500 byte circa, e tutto e' tornato a funzionare.

Mi potreste dare qualche suggerimento?

Grazie
8  International / Software / Re: pulire la stringa dopo href on: November 15, 2012, 02:56:57 pm
Essendo questa la sintassi

Redirect to http://example.com/ after 5 seconds:
<meta http-equiv="refresh" content="5;URL='http://example.com/'">

Redirect to http://example.com/ immediately:
<meta http-equiv="refresh" content="0;URL='http://example.com/'">

presumo che bisogna mettere il link che si deve ricaricare, nel nostro caso l'ip di arduino

es:
client.print("<meta http-equiv=\"refresh\" content=\"1\" url=\"http:\\192.168.1.7\">");

se vuoi che l'URL prenda l'ip corrente della scheda bisognerà prendere  byte ip[] = { 192,168,1,7 }; convertirla in stringa aggiungendo
http\\: + (String)ip[0]+................ ecc ecc

se pensi che l'ip sia sempre quello scrivi l'URL e fai prima, altrimenti in javascript ci sono altre opzioni che però comportano un ulteriore ingombro di memoria che è già limitata.
ciao


Ti ringrazio,
ho inserito la stringa prima di chiudere il div....entra in un loop che mantiene sempre l'ultimo comando inviato :-(
9  International / Software / Re: pulire la stringa dopo href on: November 14, 2012, 05:41:46 am
Si la stringa fa il refresh, ma io intendevo dire se c'è la possibilità di inserire il "pulisci" stringa all'interno della stringa refresh. Faccio un esempio che me lo invento:

client.print("<meta http-equiv=\"refresh\" content=\"1\" location.href='/'\">");

Lo so che non esiste ma è per far capire.
Grazie
Ciao
si, direi che si puo' fare qualsiasi cosa con il software  smiley-grin

Ma posso usare questa stringa o siamo a livello teorico?  smiley-confuse
10  International / Software / Re: pulire la stringa dopo href on: November 13, 2012, 04:33:35 am
Code:
client.print("<h4><a href='/?D=1'>DESTRA</a></h4>");        
          client.print("<h4><a href='/?E=1'>ENTRAMBE</a></h4>");
          client.print("<h4><a href='/?S=1'>SINISTRA</a></h4>");  
          client.print("<input type=\"button\" style=\"width:120px; height:80px\" value=\"Aggiorna\" onclick =\" location.href='/'\">");
          // chiudo il div
          client.println("</div>");

Grazie per la stringa, ti chiedo se non esista per caso un modo automatico per farlo?
in ogni caso grazie ancora
11  International / Software / Re: pulire la stringa dopo href on: November 12, 2012, 02:39:24 pm
se vuoi sapere dove inserirlo nel tuo sketch mi serve qualcosa di piu' di un if piripicchio smiley

Hai ragione e' che non volevo "disturbare" troppo .... questo e' lo sketch

Code:

#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 6

// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

///////////////////////////////////////////////////////////////////

byte mac[] = {
  0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 }; // mac address
byte ip[] = {
  192,168,1,7 }; // ip arduino internet in
byte gateway[] = {
  192,168,1,1 }; // internet access via router
byte subnet[] = {
  255, 255, 255, 0 }; //subnet mask

EthernetServer server(80); //server port


//definizione attuatori
int outPin = 2; // pin attuatore cancello
int outPin2 = 3; // pin attuatore tenda su
int outPin3 = 4; // pin attuatore tenda giu
int outPin4 = 5; // pin attuatore tenda metà
int outPin5 = 7; // pin controllo canale
int C = 5;       // Variabile canale
int D = 0;
int lettura = 0;


String readString; // legge int e assegna l'uscita

void setup()
{
  Ethernet.begin(mac, ip, gateway, subnet);
  pinMode(outPin, OUTPUT); //definisce che il pin e' un uscita
  pinMode(outPin2, OUTPUT);
  pinMode(outPin3, OUTPUT);
  pinMode(outPin4, OUTPUT);
  pinMode(outPin5, OUTPUT);
  //pinMode(outPin5, OUTPUT);
  Serial.begin(9600);


  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");

  // Start up the library
  sensors.begin();
}


void loop()
{
  {
    lettura = C; 
    Serial.println(lettura);
  } 
  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
  Serial.print(" Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");

  Serial.print("Temperature for Device 1 is: ");
  Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?
  // You can have more than one IC on the same bus.
  // 0 refers to the first IC on the wire



  /*inizio client*/

  EthernetClient client = server.available();

  if (client) {

    boolean currentLineIsBlank = true;

    while (client.connected()) {

      if (client.available()) {
        char c = client.read();
        readString.concat(c);         //store characters to string
        //if HTTP request has ended

        {
          lettura = C; 
          Serial.println(lettura);
        }




        if (c == '\n' && currentLineIsBlank) {

          if(readString.indexOf("D=1") > 0)
          {
            C=1; //  CONTROLLO CANALE
          }
          if(readString.indexOf("S=1") > 0)
          {
            C=2; //  CONTROLLO CANALE
          }
          if(readString.indexOf("E=1") > 0)
          {
            C=6; //  CONTROLLO CANALE
          }


          if(C==1)
          {
            digitalWrite(7,HIGH);
            delay(500);
            digitalWrite(7,LOW);
            delay(500);
            digitalWrite(7,HIGH);
            delay(500);
            digitalWrite(7,LOW);
            delay(500);
            C=7;
            D=1;
          }



          if(C==2)
          {
            digitalWrite(7,HIGH);
            delay(500);
            digitalWrite(7,LOW);
            delay(500);
            digitalWrite(7,HIGH);
            delay(500);
            digitalWrite(7,LOW);
            delay(500);
            digitalWrite(7,HIGH);
            delay(500);
            digitalWrite(7,LOW);
            delay(10);
            C=8;
            D=2;
          }

          if(C==6)
          {
            if(D==1)
            { 
              digitalWrite(7,HIGH);
              delay(500);
              digitalWrite(7,LOW);
              delay(500);
              digitalWrite(7,HIGH);
              delay(500);
              digitalWrite(7,LOW);
              delay(500);
              digitalWrite(7,HIGH);
              delay(500);
              digitalWrite(7,LOW);
              delay(500);
              digitalWrite(7,HIGH);
              delay(500);
              digitalWrite(7,LOW);
              delay(500);
              digitalWrite(7,HIGH);
              delay(500);
              digitalWrite(7,LOW);
              delay(10);
              C=9;
              D=3;
            }
            else
            {
              digitalWrite(7,HIGH);
              delay(500);
              digitalWrite(7,LOW);
              delay(500);
              digitalWrite(7,HIGH);
              delay(500);
              digitalWrite(7,LOW);
              delay(500);
              digitalWrite(7,HIGH);
              delay(500);
              digitalWrite(7,LOW);
              delay(500);
              digitalWrite(7,HIGH);
              delay(500);
              digitalWrite(7,LOW);
              delay(10);
              C=9;
              D=3;
            }
          }   


          if(readString.indexOf("L=1") > 0)
          {
            digitalWrite(outPin, HIGH);         //  CONTROLLO CANCELLO
            Serial.println(outPin);
            delay(2000);
            digitalWrite(outPin, LOW);
          }

          if(readString.indexOf("A=1") > 0)
          {
            digitalWrite(outPin2, HIGH); //  CONTROLLO TENDE COMANDO SU
            Serial.println(outPin2);
            delay(500);
            digitalWrite(outPin2, LOW);
          }



          if(readString.indexOf("A=3") > 0)
          {
            digitalWrite(outPin3, HIGH); //  CONTROLLO TENDE COMANDO GIU
            Serial.println(outPin3);
            delay(500);
            digitalWrite(outPin3, LOW);
          }



          if(readString.indexOf("A=2") > 0)
          { //  CONTROLLO TENDE COMANDO INTERMEDIO
            digitalWrite(outPin2, HIGH); //  Attivo il rele di salita
            delay(500); // 
            digitalWrite(outPin2, LOW); //  ------------------------

            delay(40000); //  Imposto il tempo di salita

            digitalWrite(outPin3, HIGH); //  Disattivo il rele di discesa
            delay(500); //
            digitalWrite(outPin3, LOW);         //  ----------------------------

            delay(16000);         //  Imposto il tempo perche' la tenda arrivi nel mezzo

            digitalWrite(outPin4, HIGH);        //  Attivo il relo di Stop
            delay(500); //
            digitalWrite(outPin4, LOW); //  ----------------------
          }


          // COSTRUZIONE PAGINA HTML

          client.println("HTTP/1.1 200 OK.....");

          client.println("Content-Type: text/html");

          client.println();

          // inizializzo pagina (da togliere se uso ajax)

          client.print("<html><head><title>DomusGate</title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' ></head><body>");

          //inizai il body

          client.println("<div style='width:400px; height:600px;'>"); //risoluzione per nokia 5800 640x360     

          client.println("<h1>CONTROLLO REMOTO</h1>");

          client.println("<br />");

          client.println("<hr>");

          client.println("<br />");

          client.println("<h2>APRICANCELLO</h2>");

          client.print("<h3><a href='/?L=1'>APRI</a></h3>");

          client.println("<br />");

          client.println("<hr>");       

          client.println("<hr>");       

          client.println("<h2>CONTROLLO TENDE</h2>");

          client.print("<h3><a href='/?A=1'>SU</a></h3>");       

          client.print("<h3><a href='/?A=2'>INTERMEDIO</a></h3>");       

          client.print("<h3><a href='/?A=3'>GIU</a></h3>");   

          client.println("<br />");

          client.println("<hr>");

          client.println("<hr>");       


          client.println("<h3><p>Temperatura interna = ");
          client.print(sensors.getTempCByIndex(0));
          client.println(" C <br /></p></h3>");


          client.println("<hr>");

          client.println("<hr>");       


          client.print("<h4><a href='/?D=1'>DESTRA</a></h4>");       

          client.print("<h4><a href='/?E=1'>ENTRAMBE</a></h4>");

          client.print("<h4><a href='/?S=1'>SINISTRA</a></h4>");               


          // chiudo il div

          client.println("</div>");

          // chiudo pagina da togliere se uso ajax

          client.println("</body></html>");



          // pulisco la stringa per la successiva lettura

          readString="";

          //fermo il client

          client.stop();



        } //if c == /n

      } // if client available

    } // while client connesso

  } // FINE if client

} // fine loop


12  International / Software / Re: pulire la stringa dopo href on: November 12, 2012, 01:13:01 pm
Code:
If piripicchio {
 client.print("<h3><a href='/?A=1'>SU</a></h3>"); // Tenda su
 }
 else
 {
 client.print("");
 }

Purtroppo, così non funziona......:-)
13  International / Software / Re: pulire la stringa dopo href on: November 12, 2012, 01:11:37 pm
aggiungi un tasto dove onclick fa un load della pagina pulita oppure un autorefresh
<script type=”text/javascript”>
setTimeout(‘location.href=”**************”‘,1000); // refresh ogni secondo
</script>




Grazie, potresti indicarmi dove inserire questo script....sono ancora un po niubo....
magari se hai uno sketch di esempio, te ne sarei grato.

Saluti
14  International / Software / Re: pulire la stringa dopo href on: November 12, 2012, 10:53:11 am
Grazie
Ma in questo caso "piripicchio" non e' una condizione?
non dovrei settare una variabile ??

Il mio problema e' che se clicco sul link su che ho creato con href, la stringa rimane dopo l'indirizzo, e se per errore faccio un ricarica della pagina riesegue il comando! o sbaglio??

Grazie
15  International / Software / pulire la stringa dopo href on: November 12, 2012, 10:33:43 am
Conf. Arduino uno, Shield ethernet, IDE 1.0.1


Ciao a tutti,
Nel codice che ho scritto per il controllo a distanza delle tende da sole uso quest' istruzione
nel web server creato in arduino :
Code:
client.print("<h3><a href='/?A=1'>SU</a></h3>") // Tenda su

il mio problema e' che vorrei che al refresh della pagina o quando viene caricata, la stringa si cancelli e non rimanga "indirizzoip/?A=1".
Potete aiutarmi ?

Grazie
Pages: [1] 2