Hallo!
Bei der Verwendung von Timecharts treten folgende Probleme auf:
- Der Chart wird bei einem vollen Timebuffer (wenn der Ringspeicher beginnt Werte zu überschreiben) falsch gezeichnet. Dies liegt wohl daran, dass der Zeitstempel der Speicherstelle 0 nicht der älteste Eintrag im Timebuffer ist.
- Wenn mit timebufferadd() ein neuer Wert hinzugefügt wird, werden alle Werte des Timebuffers im Chart gezeichnet (nicht nur die letzten 60 Werte wie bei der Definition des mtimechart-Elements festgelegt). Wird die Seite neu geladen, passt der Chart wieder, so lange bis der nächste Wert mit timebufferadd() hinzugefügt wird.
- Die Funktion mtimechart() zur Auswahl eines Zeitfensters hat keine Auswirkungen auf die Anzeige des Charts.
- Der Compiler lässt nicht mehr als insgesamt 20 mtimechart-Elemente zu. Die im Handbuch angegebene ID 0-39 läßt aber vermuten, dass hier 40 Elemente möglich sein sollten.
Die beiden Charts sehen nach 1,5 Stunden Laufzeit (90 Werte) dann so aus:

Beim ersten Chart wird nach 60 Werten (wenn der Ringspeicher beginnt zu überschreiben) ein horizontaler Strich durch den Chart gezogen. Beim zweiten Chart werden alle 90 Werte des Timebuffers und nicht nur die letzten 60 angezeigt.
Das ganze kann mit folgendem Code reproduziert werden:
Wenn sich das bitte jemand von Enertex ansehen könnte, da die Timecharts in der Form nicht wirklich brauchbar sind.
Der EibPC ist aus dem aktuellen Stand (EibStudio 3.009 und Patch 3.012).
Danke,
Klaus
Bei der Verwendung von Timecharts treten folgende Probleme auf:
- Der Chart wird bei einem vollen Timebuffer (wenn der Ringspeicher beginnt Werte zu überschreiben) falsch gezeichnet. Dies liegt wohl daran, dass der Zeitstempel der Speicherstelle 0 nicht der älteste Eintrag im Timebuffer ist.
- Wenn mit timebufferadd() ein neuer Wert hinzugefügt wird, werden alle Werte des Timebuffers im Chart gezeichnet (nicht nur die letzten 60 Werte wie bei der Definition des mtimechart-Elements festgelegt). Wird die Seite neu geladen, passt der Chart wieder, so lange bis der nächste Wert mit timebufferadd() hinzugefügt wird.
- Die Funktion mtimechart() zur Auswahl eines Zeitfensters hat keine Auswirkungen auf die Anzeige des Charts.
- Der Compiler lässt nicht mehr als insgesamt 20 mtimechart-Elemente zu. Die im Handbuch angegebene ID 0-39 läßt aber vermuten, dass hier 40 Elemente möglich sein sollten.
Die beiden Charts sehen nach 1,5 Stunden Laufzeit (90 Werte) dann so aus:

Beim ersten Chart wird nach 60 Werten (wenn der Ringspeicher beginnt zu überschreiben) ein horizontaler Strich durch den Chart gezogen. Beim zweiten Chart werden alle 90 Werte des Timebuffers und nicht nur die letzten 60 angezeigt.
Das ganze kann mit folgendem Code reproduziert werden:
Code:
[WebServer] page(WEB_PAGE_WETTER)[$Menü$, $Wetter$] line $Aussentemperatur$ mtimechart(WEB_CHART_TEMP)[LONG, AUTOSCALE, 60, 0, 0, 0, 0]($$, LEFT, WEB_TIMEBUF_TEMP) line $Helligkeit$ mtimechart(WEB_CHART_HELL)[LONG, AUTOSCALE, 60, 0, 0, 0, 0]($$, LEFT, WEB_TIMEBUF_HELL) pbutton(WEB_BTN_60_MIN)[UPDATE]$60 min$ pbutton(WEB_BTN_120_MIN[UPDATE]$120 min$ [EibPC] WEB_CHART_TEMP = 0 WEB_CHART_HELL = 1 WEB_BTN_60_MIN = 2 WEB_BTN_120_MIN = 3 WEB_TIMEBUF_TEMP = 0 WEB_TIMEBUF_HELL = 1 timebufferconfig(WEB_TIMEBUF_TEMP, 0, 60u16, 0.0) timebufferconfig(WEB_TIMEBUF_HELL, 0, 1440u16, 0.0) if second() == 0 then { timebufferadd(WEB_TIMEBUF_TEMP, "Temperatur Aussenfühler-0/0/2"); timebufferadd(WEB_TIMEBUF_HELL, "Helligkeit-0/0/6") } endif if pbutton(WEB_BTN_60_MIN, WEB_PAGE_WETTER) == 1 then { mtimechart(WEB_CHART_HELL, 0, WEB_TIMEBUF_HELL, utctime() - 3600000u64, utctime()) } endif if pbutton(WEB_BTN_120_MIN, WEB_PAGE_WETTER) == 1 then { mtimechart(WEB_CHART_HELL, 0, WEB_TIMEBUF_HELL, utctime() - 7200000u64, utctime()) } endif
Der EibPC ist aus dem aktuellen Stand (EibStudio 3.009 und Patch 3.012).
Danke,
Klaus
Kommentar