Go Down

Topic: [Ethernet-Shield] Probleme beim Implementieren eines iFrames - Ideen? (Read 1 time) previous topic - next topic

sorath

Hallo Leute!

Ich bin noch recht unerfahren auf dem Gebiet und bräuchte mal einen Rat.

Ich habe einen Webserver programmiert mit dem Ethernet-Shield, der funktioniert auch.

Zudem habe ich ein weiteres Projekt gemacht, in dem ich die Internetzeit abrufe und in ein lesbares Format bringe; funktioniert ebenso.  :)


Nun wollte ich hingehn, und diese beiden Projekte vereinen - funktioniert ebenfalls - ABER......


....nur wenn ich folgenden Code vom Webserver auskommentiere.
In diesem Code implementiere ich lediglich einen iFrame für ein Webcam-Video  :smiley-roll:

Code: [Select]

        //  client.print("<iframe width='380' height='202' src='http://www.ustream.tv/embed/13190705?v=3&amp;wmode=direct' ");
        //  client.print("scrolling='no' frameborder='0' style='border: 0px none transparent;'>");
        //  client.println("</iframe><br>");


Bleibt der Code drin, hängt sich Arduino beim "void Setup" auf, und zwar an der Stelle, an der die Internetverbindung (w5100 ?) aufbauen will, also hier:

Code: [Select]
Serial.print(F("Starting w5100..."));
  if(!Ethernet.begin(mac))
  {
    Serial.println(F("failed"));
    while(1);   
  }
  else {
   Serial.println(F("ok"));
   Serial.print(F("ip = "));
   Serial.println(Ethernet.localIP());
  }


Bei Starting w5100... ist Schluss in der Serial-Konsole.

Das kuriose für mich ist, dass das funzt, wenn der Webserver allein läuft, alles geht (ohne die Funktion, die Zeit aus dem Internet abzurufen) mit genau diesen (nun auskommentierten) Zeilen.

Hat da jemand eine Idee??

Danke, Gruß
Chris

sorath

Okay, mittlerweile bin ich der Ansicht, dass ich vielleicht zuviel Ausgaben mit "println" habe.

Gibts da irgend ein Limit in irgendeiner Richtung?

Timeout, Buffer, irgendsowas?  :~


Gruß
Chris

mrlowalowa

Also W5100 ist der Chip auf den Wiznet Ethernet Shileds. Hast du denn so eins?

Wo befindet sich der auskommentierte Code denn genau? Vielleicht wird er schon initialisiert bevor dein Ethernet Port initialisiert wird und somit hängt er sich auf.

Was ich auch recht verwunderlich finde, ist dass die den iframe befehl Splittest und warum du Ihn nicht einfach komplett einfügst bis '>' kommt.


Sind rein hypothetische Vermutungen ^^Aber manchmal sind es die einfachsten dinge  :~

sorath

Hallo mrlowalowa!

Danke für Deine Antwort.

Quote
Also W5100 ist der Chip auf den Wiznet Ethernet Shileds. Hast du denn so eins?

Ja genau, so eins hab ich :-)
Würde auch dazu passen, dass es eigentlich ja funktioniert jeweils im Einzelnen.

Quote
Was ich auch recht verwunderlich finde, ist dass die den iframe befehl Splittest.....

Das war schon ein Verzweifelter Versuch, den Fehler zu finden  :P
Habe darauf getippt, dass ich vielleicht zuviel auf einmal mit println übertrage....

Quote
Wo befindet sich der auskommentierte Code denn genau? Vielleicht wird er schon initialisiert bevor dein Ethernet Port initialisiert wird und somit hängt er sich auf.


Der auskommentierte Code befindet sich mitten in der Übertragung des HTML-Codes im <body>.
Danach und davor befinden sich weitere client.println("blabla");, die auch korrekt verarbeitet werden, wenn die 3 genannten wegfallen.

--------------------

Was mir nun aufgefallen ist, was definitiv so sein muss:

Wenn ich einen großen Teil der html-seite weglassen (wieder mal client.println("irgendwas");) und diesen ersetze durch den o.g. Code geht es.
Es ist definitiv irgendwas zuviel, entweder Zeichen insgesamt, oder übertragene Befehle für die Sitzung... irgendwas läuft über.

Der Gesamte Code des Projektes vermutlich auch nicht, da ja noch Platz ist auf der Arduino? (richtig?)

Ich habe eine UNO mit einer binären Sketchgöße von
Quote
19.584 Bytes (von einem Maximum von 32.256 Bytes)



LG
Chris

sorath

UPDATE:

Also zuviele "println();"-Befehle sind es auch nicht, habe alles zusammengefasst, was möglich ist.

Also bleibt nur noch die Zeit für die Übertragung oder zuviele Zeichen, die ich senden will.


Keiner eine Idee, was man machen kann?


Grüße

Go Up