Custom-Datei temporär abarbeiten lassen

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

Antworten
Benutzeravatar
Tex
Moderator
Beiträge: 2007
Registriert: 04 Aug 2014 17:47
Wohnort: Woldegk
Hat sich bedankt: 3 mal
Danksagung erhalten: 45 mal
Kontaktdaten:

Custom-Datei temporär abarbeiten lassen

Beitrag von Tex »

Gerade bei großen Dateien, wie z.B. dem Wetterkalender werden ziemliche Rechnerleistungen benötigt. Zudem ist es oft gar nicht nötig, daß diese zusätzlichen Dateien permanent nach der 1. custom.txt aktualisiert werden.
Hier mal ein Script, um zusätzliche Customdateien NUR temporär abarbeiten zu lassen.
<!-- %customfile=custom.html% -->


<!-- %ws_setmem[1]=%ws_compare[3]=%ws_minute2%~00~4~0%%
%ws_setmem[2]=%ws_compare[3]=%ws_minute2%~15~1~0%%
%ws_setmem[3]=%ws_compare[3]=%ws_minute2%~30~1~0%%
%ws_setmem[4]=%ws_compare[3]=%ws_minute2%~45~1~0%%
%ws_setmem[5]=%ws_calc[+]=%ws_getmem[1]%~%ws_getmem[2]%~1%%
%ws_setmem[6]=%ws_calc[+]=%ws_getmem[3]%~%ws_getmem[4]%~1%%
%ws_setmem[7]=%ws_calc[+]=%ws_getmem[5]%~%ws_getmem[6]%~1%%
%ws_setmem[8]=%ws_compare[3]=%ws_getmem[7]%~4~%openfile=wetterkalender-uni.txt%~%% -->

<!-- openfile=wetterkalender-uni.txt -->

<!-- %ws_getmem[8]% -->
Erläuterung:
Bei dieser Einstellung wird NUR jeder vollen Stunde die Wetterkalener-uni.txt abgearbeitet. Setze ich in diesen Zeilen
%ws_setmem[1]=%ws_compare[3]=%ws_minute2%~00~4~0%%
%ws_setmem[8]=%ws_compare[3]=%ws_getmem[7]%~4~%openfile=wetterkalender-uni.txt%~%%
die 4 auf die 1, dann wird alle 15 Minuten aktualisiert.
Setze ich die beiden %-Zeichen in den letzten Befehl ein:
<!-- %openfile=wetterkalender-uni.txt% -->
wird permanent abgearbeitet.


Anderes Beispiel:
<!-- %customfile=custom.html% -->

<!-- %ws_setmem[1]=%ws_compare[3]=%ws_hour2%%ws_minute2%~0000~1~0%%
%ws_setmem[2]=%ws_compare[3]=%ws_hour2%%ws_minute2%~0600~1~0%%
%ws_setmem[3]=%ws_compare[3]=%ws_hour2%%ws_minute2%~1200~1~0%%
%ws_setmem[4]=%ws_compare[3]=%ws_hour2%%ws_minute2%~1800~1~0%%
%ws_setmem[5]=%ws_calc[+]=%ws_getmem[1]%~%ws_getmem[2]%~1%%
%ws_setmem[6]=%ws_calc[+]=%ws_getmem[3]%~%ws_getmem[4]%~1%%
%ws_setmem[7]=%ws_calc[+]=%ws_getmem[5]%~%ws_getmem[6]%~1%%
%ws_setmem[10]=%ws_compare[3]=%ws_getmem[7]%~1~%openfile=wetterkalender-uni.txt%~ %openfile=test.txt%%%
<!-- %ws_getmem[10]% -->
Hier wird jetzt der Wetterkaleneder nur um 00:00; 06:00; 12:00; 18:00 Uhr abgearbeitet - ansosnten geht es immer nach der 1.custom in die test.txt. (Die kann man ja beliebig gegen andere dateien austauschen, oder auch einfach löschen).
Man kann also auch zwischenschalten. Gleiches kann man auch bei weiteren Dateien anlegen und ineinander verschachteln - allerdings muß man schon genau nachrechnen, was dann wann passiert.
Benutzeravatar
Tex
Moderator
Beiträge: 2007
Registriert: 04 Aug 2014 17:47
Wohnort: Woldegk
Hat sich bedankt: 3 mal
Danksagung erhalten: 45 mal
Kontaktdaten:

Beitrag von Tex »

Nochmals zur Verdeutlichung

So sieht die Standart custom.txt oben im Kopf aus, wenn man die wetterkalender-uni.txt dort zur Abarbeitung eingibt

Statt:
<!-- %customfile=custom.html% -->

<!-- %openfile=wetterkalender-uni.txt% -->




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Cache-Control" CONTENT="must-revalidate">
<META HTTP-EQUIV="Refresh" CONTENT="300">
<meta name="Author" content="© 1999-2005 Werner Krenn">
dann das hier einsetzen bzw. ergänzen (nur als Beispiel - hier Abarbeitung zu jeder volle Stunde. Gleiches Prinzip gilt für das andere Script, dann nur alle 6 Stunden):
<!-- %customfile=custom.html% -->


<!-- %ws_setmem[1]=%ws_compare[3]=%ws_minute2%~00~4~0%%
%ws_setmem[2]=%ws_compare[3]=%ws_minute2%~15~1~0%%
%ws_setmem[3]=%ws_compare[3]=%ws_minute2%~30~1~0%%
%ws_setmem[4]=%ws_compare[3]=%ws_minute2%~45~1~0%%
%ws_setmem[5]=%ws_calc[+]=%ws_getmem[1]%~%ws_getmem[2]%~1%%
%ws_setmem[6]=%ws_calc[+]=%ws_getmem[3]%~%ws_getmem[4]%~1%%
%ws_setmem[7]=%ws_calc[+]=%ws_getmem[5]%~%ws_getmem[6]%~1%%
%ws_setmem[8]=%ws_compare[3]=%ws_getmem[7]%~4~%openfile=wetterkalender-uni.txt%~%% -->

<!-- openfile=wetterkalender-uni.txt -->

<!-- %ws_getmem[8]% -->




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Cache-Control" CONTENT="must-revalidate">
<META HTTP-EQUIV="Refresh" CONTENT="300">
<meta name="Author" content="© 1999-2005 Werner Krenn">

Rest wie in der Beschreibung des oberen Beitrags....
komm48
Beiträge: 81
Registriert: 18 Jul 2005 17:44
Wohnort: Kreuzau-Drove
Kontaktdaten:

Beitrag von komm48 »

Danke Tex,

heisst das, wenn ich aus ~1~ jeweils eine ~6~ mache, dass die Abarbeitung dann alle sechs Stunden erfolgt?
Einen schönen Wettergruß aus der Voreifel von

Willi Jörres
https://voreifelwetter.de
Benutzeravatar
Tex
Moderator
Beiträge: 2007
Registriert: 04 Aug 2014 17:47
Wohnort: Woldegk
Hat sich bedankt: 3 mal
Danksagung erhalten: 45 mal
Kontaktdaten:

Beitrag von Tex »

Kurze Antwort: Nein!

Wenn man die WSWIN-Variablen und deren Berechnung verstehen wiil, kommt man nicht umhin, sich damit ausführlich zu beschäftigen.

Da es aber so scheint, als ob der Einstieg (trotz der umfänglichen Hilfeseiten von Werner) so schwer ist, will ich das mal ganz praktisch an diesem Beispiel erklären - sozusagen der Grundkurs.

Neben den unzähligen Einzelvariablen, die ein fertiges Ergebnis liefern, gibt es auch zahlreiche Variablen, die ausschließlich zur Berechnung / Weiterberechnung selbiger ausgelegt sind. Dazu zählen besonders folgende:

1) %ws_setmem[x]=
2) %ws_getmem[x]%
3) %ws_calc[+]= (mit den Funktionen in der Klammer * / - + 2)
4) %ws_compare[x]= (mit den Funktionen in der Klammer 1-6 --- größer, größer/gleich, gleich etc.)

zu 1) ist eine Speichervariable, die von Nr. 1 bis (momentan) Nr. 64 reicht. Hier kann ich den Wert, der nach dem = kommt speichern und ihn mit
zu 2) wieder abrufen

Habe ich also einen Wert / Berechnung etc. in %ws_setmem[25]= gespeichert, kann ich ihn an andere Stelle mit %ws_getmem[25]% wieder aufrufen - und auch weiterberechnen.

zu 3) ist eine Kalkulationsvariable (calc) mit den üblichen Grundrechenarten.
zu 4) ist eine Vergleichsvariable (compare = vergleiche)

Jetzt am aktuellen Beispiel erklärt:

%ws_setmem[1]=%ws_compare[3]=%ws_minute2%~00~4~0%%

heißt in Worte gefaßt:

%speicher Ergebnis in Nr[1]=vergleiche ob folgendes gleich ist[3]=aktuelle Minute WSWIN-Zeit~ist es gleich 00~ dann 4~ sonst 0%%

Alle Uhrzeiten / Minuten, die nicht gerade XX:00 sind, haben zum Ergebnis 0. Ist es gerade 16:00 oder 23:00 Uhr, dann sind die Minuten 00 - und als Ergebnis kommt 4 raus. (compare(3) bedeuted =vergleiche ob gleich)

Das passiert jetzt mit allen vier Variablen so, als Beispiel 16:00 Uhr:

%ws_setmem[1]=%ws_compare[3]=%ws_minute2%~00~4~0%% Ergebnis = 4
%ws_setmem[2]=%ws_compare[3]=%ws_minute2%~15~1~0%% Ergebnis = 0
%ws_setmem[3]=%ws_compare[3]=%ws_minute2%~30~1~0%% Ergebnis = 0
%ws_setmem[4]=%ws_compare[3]=%ws_minute2%~45~1~0%% Ergebnis = 0

Dann wird das Ergebnis von setmem(1) bis setmem(4) zusammengerechnet...

%ws_setmem[5]=%ws_calc[+]=%ws_getmem[1]%~%ws_getmem[2]%~1%%
%ws_setmem[6]=%ws_calc[+]=%ws_getmem[3]%~%ws_getmem[4]%~1%%
%ws_setmem[7]=%ws_calc[+]=%ws_getmem[5]%~%ws_getmem[6]%~1%%


und steht unter setmem(7) zur Weiterverarbeitung zur Verfügung. Nun wird wieder verglichen was zutrifft: ist getmem(7) gleich 4 -> dann mach openfile..., sonst mach nix (~nix%%)

%ws_setmem[8]=%ws_compare[3]=%ws_getmem[7]%~4~%openfile=wetterkalender-uni.txt%~%%

Habe ich also oben im 1. Vergleich die Ziffer 4 (oder auch die 5 oder 789 eingesetzt) kommt genau zur vollen Stunde (Minuten 00) diese Zahl unten an - und löst, wenn ich im letzten Therm die 4 (oder die Ziffer, die ich sonst oben drin stehen habe) die openfilfunktion aus - und zwar im letzten Befehlt

%ws_getmem[8]%

weil es ja in setmem(acht) gespeichert wurde.

Ist es jetzt z.B. 17:35 Uhr, sind die Minuten 35 und keine der Bedingungen in der Berechnung von setmem(1) bis setmem(4) treffen zu, weshalb immer eine 0 kommt. Zusammengezählt ergibt 4x 0 eben auch nur 0. Ergebnis: es wird in getmem(acht) auch kein openfilebefehl kommen.

Verändere ich in

%ws_setmem[1]=%ws_compare[3]=%ws_minute2%~00~4~0%%
die 4 in eine 1

und unten im Schlußvergleich dann

%ws_setmem[8]=%ws_compare[3]=%ws_getmem[7]%~4~%openfile=wetterkalender-uni.txt%~%%
die 4 ebenfalls in eine 1

so wird logischerweise alle 15 Minuten das Endergebnis der calc-berechnung in
%ws_setmem[5]=%ws_calc[+]=%ws_getmem[1]%~%ws_getmem[2]%~1%%
%ws_setmem[6]=%ws_calc[+]=%ws_getmem[3]%~%ws_getmem[4]%~1%%
%ws_setmem[7]=%ws_calc[+]=%ws_getmem[5]%~%ws_getmem[6]%~1%%


eine 1 sein. Und die kommt dann wieder in den Schlußvergleich

%ws_setmem[8]=%ws_compare[3]=%ws_getmem[7]%~1~%openfile=wetterkalender-uni.txt%~%%

und wenn die dort auch auf 1 steht, wird alle 15 Minuten der Wetterkalender abgearbeitet.

Genauso funktioniert auch das andere Beispiel für alle 6 Stunden. Das kann man ganz beliebig variieren - aber dazu muß man sich damit beschäftigen.

Ich hoffe, hier mal an einem ganz praktischen Beispiel, einen kleinen verständlichen Einstieg geliefert zu haben.
Antworten