Pages: [1] 2   Go Down
Author Topic: pulire la stringa dopo href  (Read 2362 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7210
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
If piripicchio {
 client.print("<h3><a href='/?A=1'>SU</a></h3>"); // Tenda su
 }
 else
 {
 client.print("");
 }
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 1
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3433
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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>


« Last Edit: November 12, 2012, 12:57:26 pm by pablos » Logged

no comment

Offline Offline
Newbie
*
Karma: 1
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
If piripicchio {
 client.print("<h3><a href='/?A=1'>SU</a></h3>"); // Tenda su
 }
 else
 {
 client.print("");
 }

Purtroppo, così non funziona......:-)
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3433
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

se vuoi sapere dove inserirlo nel tuo sketch mi serve qualcosa di piu' di un if piripicchio smiley
Logged

no comment

Offline Offline
Newbie
*
Karma: 1
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3433
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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>");
Logged

no comment

Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate, mi intrometto, se non sbaglio Pablos nella tua soluzione viene creato un pulsante apposito per "pulire" la stringa, vero? Ma non c'è un modo di pulirla inglobandola nei comandi?
Grazie
Ciao
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Chiedo, in qualche modo non si può inglobare parte della stringa che avete scritto nella stringa di refresh pagina?

client.print("<META HTTP-EQUIV='refresh' CONTENT='0; /'>");

In questo modo sarebbe tutto più semplice e automatico.

Grazie
Ciao
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3433
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si , questo dovrebbe fare l'autorefresh ogni secondo, va messo dentro l' HEAD, però così da sola fa il refresh ripetendo la stringa presente nel link, se hai inviato un comando tramite GET lo ripeterà all'infinito
 
 
Code:
client.print("<HEAD>");
          client.print("<meta http-equiv=\"refresh\" content=\"1\">");
          client.print("</HEAD>");
« Last Edit: November 13, 2012, 01:20:20 pm by pablos » Logged

no comment

Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3433
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

no comment

Pages: [1] 2   Go Up
Jump to: