Hallo,
Ein Teil meiner Wetterstation mit HTML Webinterface ist das Darstellen der Daten in einer Grafik.
So wie diese Funktion die eine Website erstellt um den Windverlauf darzustellen
Mich stört hier etwas, das die Seite etwas langsam aufgebaut wird.
Man kann sehen wie die Seite von links nach rechts aufgebaut wird, also der for schleife quasi bei der Arbeit zusehen (dauert ca. 2 sek)
Wäre es Möglichkeit diese Website auf der SD Karte als File zu erstellen und von dort anzuzeigen ? - dann wäre das sichtbare Aufbauen wohl behoben.
Wie die Site ausschaut ist im Anhang zu sehen.
void Male_Windstatistik(EthernetClient cl)
{
int xpos=50; int werte=70;
int aktime=((hour()*60)+minute()) /10; //Serial.println("Startstatistik"); //Serial.println(aktime);
String farbe,farbe1,farbe2="white";
byte zz=1;
uwefed:
Ich würde auf alle Fälle das F() Makro bei cl.print() verwenden.
Wenn ich dies mache, wird der Aufbau noch viel langsamer.
Flash ist schon viel langsamer als Sram.
Habe aber den Code schon optimieren können.
Vor allem die waagrechte Skalenlinien in jedem der 244 div Elemente war Käse.
Am Ende einfach 4 Div's drüberlegen ist viel besser.
Bin zufrieden.
Aber das Darstellen der Logdaten der anderen Sensoren in einer Website kann ich vergessen.
Wenn dann in seperaten Seiten.
Eine andere Plattform wäre wohl besser, ein Due oder ein YÚN.
Beim Due ist es die 3.3 Volt logic und die Anpassung der Lib's wohl das Hauptproblem.
Mein China Ethernet Shield wäre auch nicht kompatibel - leider keine R3
Mir fällt auch auf, das hier wenige den Due benutzen.
Der YÚN ist brandneu, und würde gerne wissen wie das mit Bridge Lib abläuft.
Leider ist es so, das der Code ohne F Macro ca. 1829 ms braucht um die Seite darzustellen.
Mit F Macro dauert das ganze 11597 ms :~
Da besteht Erklärungsbedarf.
Evtl. mache ich was falsch, es reicht IHMO statt cl.print("bla bla bla"); ein cl.print(F("bla bla bla")); zu schreiben ?
Anbei der Code mit F Macro:
Das F Makro braucht nie soviel Zeit. Dein Ethernetclient ist vermutlich die Ursache. Ist es denkbar, daß der Client zu kleine Pakete erzeugt und die mit dem F Makro dann vieleicht nicht kleiner macht?
Wireshark ist Dein Freund wenn Du das analysieren willst.
Du läßt den arduino die ganze arbeit machen und sendest tausende html-zeilen.
soll doch der browser arbeiten und Du sagst ihm, was er machen soll und überträgst nur werte.
ich hab' das nur schnell für den pc geschrieben und nicht für den arduino, hab' grad keinen zur hand.
in der funktion werte werden nur spaßwerte generiert, die kommen ja dann von den sensoren.
das ganze ist nur ein ansatz, vielleicht hilft es Dir weiter...
das ganze ist nur ein ansatz, vielleicht hilft es Dir weiter...
Natürlich hilft das, ist zumindest ein Ansatz. Ich denke das langsam zu verstehen....
Ich habe befasse mich erst seit ca. 3 Monaten intensiv mit HTML, bei der Java Lösung habe ich ein Verständnisproblem wie die Daten auf den Client kommen.
Wie bekomme ich die Daten rein, das ist ja schon java :
Hier verstehe ich das schon noch, es wird nicht auf die Arduino Daten zugegriffen.
function werte() { // array befüllen, macht der arduino
a = new Array(12);
for (var n = 0; n < 12; n++) {
a[n] = new Array(12);
for (var m = 0; m < 12; m++) {
a[n][m] = Hier müsste auf Daten aus dem ext. EEprom des Arduino zugegriffen werden
}
}
}
Habe ich ein Array das in Java als auch in Arduino C++ sichtbar ist ??
Der Arduino muss einfach eine URL zusammenbauen, und die passende Grafik landet auf der Website.
Belastet den Arduino nicht, ist genial einfach und dazu noch schnell und schaut obendrein schick aus
Wundert mich eigentlich den Tip hier nicht bekommen zu haben
Der Lerneffekt wäre via Java Eigenbau mit Sicherheit größer gewesen, wobei ich es mit Sicherheit nicht ohne Hilfe hinbekommen hätte.
Dazu waren zu viele Fragen offen.
Schon klar, den Haupt Unterschied kann man schon im Namen sehen, es handelt sich hier um eine Scriptsprache.
Um dies geht es aber hier nicht.
Warum wird eine Website mit F Macro deutlich langsamer aufgebaut ???
In meinem Beispiel habe ich die Zeit die der Arduino in dieser Funktion braucht gemessen.
Die Zeiten sind im Vergleich unterirdisch, und laut Uwe sollte dies nicht so sein.
Evtl. kann das ein anderer auch mal testen, es reicht hier eine statische etwas größere Website.
Diese refreshen - und den Unterschied mit oder ohne F Macro optisch sehen und auch messen.