Show Posts
Pages: 1 [2]
16  International / Deutsch / Lan Kommunikation nach 40 Sek nicht mehr möglich on: October 26, 2012, 07:00:33 am
Hallo Freunde,

ich habe derzeit ein Problem dem ich nicht " auf die Spur " komme:

Es wurde mit einem MEGA+EthernetShield eine Ethernet-(W)-Lan Kommunikation von einer Html-Seite auf einem Browser (IE8) zum ARDUINO aufgebaut.
Die Verbindung über einen Http-Request zum Eth.Shield  und zurücksenden einer Html-Seite funktioniert nach dem Start des Programms und über
ca. 40 Sek. lang einwandfrei.

Wird eimal für ca. 40 sec. kein Request von der Html-Seite gesendet, dann wird ungefähr nach dieser Zeit vom ARDUINO keine Request vom Browser mehr angenommen.
Wird jedoch in dieser Zeitspanne immer wieder einmal eine Request gesendet, funktioniert die Verbindung immer.

Dach einem Neustart des Programms funktioniert immer alles wieder ganz normal.
Ich habe bereits jede Menge Versuche gestartet um den Fehler zu finden bisher jedoch vergeblich.
Über ein spezielles Programm lasse ich mir die abgesendeten Requests vom Browser aufzeigen.
Auch der Request  den vom ARDUINO nicht mehr angenommen wird vom Browser gesendet.

Wer könnte hier helfen? Wer hat bereit ähnliche Probleme einmal gehabt?

Liebe Grüsse
Rainer

Hier nun einige Daten zur HW + SW :
Neues MEDGA-Bord R3 + EthernetShield R3,  
Programmierumgebung ; MSWin 7 mit aktueller Arduino 1.0.1 Umgebung


..und hier das Kernstück meiner Software:..
Vorab werden selbstv. Client + Server ordungsgemäß intialisiert
und die SW unten läuft im Loop.

Code:
 
//Wartet auf  Http- Request vom Browser
   EthernetClient client = server.available();
  
   while ((client) && (client.connected()))
   {  
       if (client.available()) {
          char c = client.read();
          digitalWrite(LED_GELB,HIGH);
          
          if (GetString.length() < 60) {GetString += c;}
          
          if ((c == '\r')&&(!GETrow)){
             if(GetString.indexOf("GET /") >=0){GETrow=true;}
          }
          
          if (c == '\n'){
              while (client.available()>0) {c = client.read();}
              HttpEnd=true;
              break;
          }
       }
   }
 
 
  if (HttpEnd) {
  
     //Serial.println(GetString);   //empfangener String
            
       if(GetString.indexOf("HTML=CFG") >0) {
         CFG_Seite(client);  // sendet Web-Seite zum Browser
       }
          
       if(GetString.indexOf("callback") >0) {
         SZW_Seite(client);
       }
          
       if(GetString.indexOf("SDC=ja") >0) {
         SDC_Status_EEPROM = 99;
         EEPROM.write(1,99);
         CFG_Seite(client);
        }
          
        if(GetString.indexOf("SDC=nein") >0) {
          SDC_Status_EEPROM = 0;
          EEPROM.write(1,0);
          CFG_Seite(client);
        }
          
        if(GetString.indexOf("PZYK") >0) {
           String sub_string = GetString.substring(11,14);
           int zykwert = 12;
           if (sub_string == "030") {zykwert = 3;}
           if (sub_string == "060") {zykwert = 6;}
           if (sub_string == "120") {zykwert = 12;}
           EEPROM.write(2,zykwert);
           CFG_Seite(client);
        }

        GetString = "";
        GETrow  = false;
        HttpEnd = false;  
        digitalWrite(LED_GELB,LOW);
        ControlTime = Task4_Start+1;
  }
Pages: 1 [2]