PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HS und Startprobleme



bytefactory
06.12.03, 23:59
hallo zusammen,

ich hatte vor einiger zeit in diesem thread ( http://www.eib-userclub.de/forum/showthread.php?s=&threadid=1170&perpage=15&highlight=minuten&pagenumber=1) über startprobleme des HS gelesen. gerade eben hat es mich erwischt, allerdings aus einem anderen grund als dort.

gleich vorweg. es war meine eigene dummheit. ich schreibe dieses mail eigentlich nur für leute, denen ähnliches wiederfährt.

das ganze trat auf einmal auf, nachdem ich eine etwas komplexere abwesenheits-logik hinzufügte. ich kombinierte sequenzen, div. logiken. nach dem hochladen ging nix mehr und ich meckerte schon über den ft1.3 und wünschte mir die eib-weiche:)

ein blick auf die debugseite brachte folgendes zum vorschein:
- die Zeile "SetWertQueue 5000 4998 5000 144940 74136 21.06" war am anschlag und wurde auch nicht mehr kürzer ... in der visu ging nix mehr ... auch die auszulesenden werte kamen nur extreem schleppend rein (so 1 wert pro minute) ...

nach 10 erfolglosen restarts des HS probierte ich durch das reduzieren der logik den übeltäter herauszufinden. und siehe da. ein UND baustein checkte beim restart ein paar interne variablen und startete eine sequenz. diese sequenz setzte 2 der in der logik vorhandenen variablen auf 0 (obwohl die schon 0 waren). das verursachte, das die logik neu berechnet wurde, und die sequenz wurde 2 weitere male gestartet ... das ganze ergab eine schöne endlos-rekursion ... prima ... nun verwende ich ausgang 3 und 4 ... senden nur bei änderung und alles funzt prima ...

und die moral von der geschicht':
dummheit schützt vor strafe nicht
(hab fast 2 stunden an dem problem gebastelt :)

@DACOM: kann man da was in richtung rekursionsvermeidung tun???

happy homeserving ...
ciao
tilo

PeterH
08.12.03, 09:12
Hallo Tilo,

der HomeServer erkennt und verhindert Rekursionen innerhalb des Logikmoduls.
Bei indirekten Rekursionen ausserhalb des Logik-Moduls, wie z.B. bei Beteiligung einer Sequenz, findet keine Rekursionserkennung statt.
Dies ist so, da es durchaus auch gewollte Rekursionen mit Abbruchbedingung in einer Logik geben kann.
Zum Anderen kann an einer indirekten Rekursion z.B. auch der EIB beteiligt sein, welches dann vom HomeServer nicht erkannt werden kann.