Wenn ich versuche, eine lokale Makrovariable zu verändern, bekomme ich die Fehlermeldung "Unerlaubte Rekursion":
+---+ EibParser - v4.111 (Windows 64 Bit Version) +---+ Keine Haftung für Schäden, die durch die Benutzung des Programms entstehen. Len:59 Len:59 Datei: "S:\EIB_KNX\EibPC2-Projekte\Amselweg7-EibPC01_tmp\tmpMacroOut.txt" wurde geschrieben !! Anwendungsfehler !! !Unerlaubte Rekursion >__Daylightcorrection_663__Luxwert=f(__Daylightc or rection_663__Luxwert)< EC:7 EibParser wurde mit Fehler beendet.
Das Makro (aufgrund der Fehlersuche immer mehr abgespeckt, deshalb soll dessen Sinnhaftigkeit hier nicht diskutiert werden...):
Der Fehler tritt in der Zeile "Luxwert@ = Luxwert@ + 1f32" auf - Wahnsinn...
Also ergibt das Erhöhen eines Variablenwerts um 1 (alles andere als Zeilen mit der lokalen :var Luxwert@ habe ich eliminiert) eine Rekursion????
Sind das dann lokale Konstanten? Einmal definiert und unveränderlich? dann sollte das Schlüsselwort nicht :var heißen, sondern :const
+---+ EibParser - v4.111 (Windows 64 Bit Version) +---+ Keine Haftung für Schäden, die durch die Benutzung des Programms entstehen. Len:59 Len:59 Datei: "S:\EIB_KNX\EibPC2-Projekte\Amselweg7-EibPC01_tmp\tmpMacroOut.txt" wurde geschrieben !! Anwendungsfehler !! !Unerlaubte Rekursion >__Daylightcorrection_663__Luxwert=f(__Daylightc or rection_663__Luxwert)< EC:7 EibParser wurde mit Fehler beendet.
Das Makro (aufgrund der Fehlersuche immer mehr abgespeckt, deshalb soll dessen Sinnhaftigkeit hier nicht diskutiert werden...):
Code:
:begin Daylightcorrection(pLux) :info $Passt den Zeitpunkt der Lamellenposition an die Jahreszeit an, im Winter früher, im Sommer später$ //:var MaxAbweichungLux@ :var Luxwert@ //:var DaysThisYear@ //:var DayOfYear@ //:var Luxkorrektur@ //MaxAbweichungLux@ = 20f32; Luxwert@ = convert(pLux, 0f32); //DaysThisYear@ = convert(GetNumberOfDaysThisYear(), 0f32); //DayOfYear@ = convert(DayOfYear, 0f32); // //Luxkorrektur@ = -1f32 * cos(PI*2f32*DayOfYear@/DaysThisYear@) * MaxAbweichungLux@; Luxwert@ = Luxwert@ + 1f32; :return Luxwert@ :end
Also ergibt das Erhöhen eines Variablenwerts um 1 (alles andere als Zeilen mit der lokalen :var Luxwert@ habe ich eliminiert) eine Rekursion????

Kommentar