Den Fehler hatte ich auch schon ab und zu mal. Einmal das LUA Script neu laden und der Fehler war weg.
Scheint mit dem Start des LUA Skriptes und dem Wechsel aus dem Edit-Modus von EEP zu tun zu haben.
Fehlermeldung
-
Gast_08 -
12. Mai 2021 um 14:33
Achte bitte darauf, dass Du mit deinem Thema bzw. mit deiner Frage im richtigen Bereich bist.
Die Bereiche sind: Einstellungen im Forum, EEP aktuell ab EEP7 , Splines, Rollmaterialien, Immobilien, Landschaftselemente, Signale und Schaltung, Anlagenvorstellungen, Schnappschüsse Konstrukteure, EEP Treffen , Laberecke, Online - Handbuch EEP Vielen Dank für die Unterstützung das Forum übersichtlich zu halten.
Die Bereiche sind: Einstellungen im Forum, EEP aktuell ab EEP7 , Splines, Rollmaterialien, Immobilien, Landschaftselemente, Signale und Schaltung, Anlagenvorstellungen, Schnappschüsse Konstrukteure, EEP Treffen , Laberecke, Online - Handbuch EEP Vielen Dank für die Unterstützung das Forum übersichtlich zu halten.
Bilder/Fotos aus dem Internet sind nur als Link gestattet. Eigene Fotos, also Fotos aus dem realen Leben, sind erstens mit Eigenes Bild als Quellenangabe zu kennzeichnen und zweitens nur als Dateianhang im Beitrag zulässig. Bilder ohne Quellenangaben und Bilder dessen Quelle das Internet wie z. B. Google ist, werden gelöscht.
-
-
Den Fehler hatte ich auch schon ab und zu mal. Einmal das LUA Script neu laden und der Fehler war weg.
...die Fehlermeldung war weg und eine Funktion wurde nicht ausgeführt. Da alles (vermeintlich) normal weiterläuft, bemerkt man erst viel später, daß die Steuerung aus den Rudern lauft und die Sucherei beginnt.
PleaseStop bedeutet also: hör auf und fang nochmal von vorne an, ganz ruhig.
-
Hallo Ray, bitter erkläre mal. Ich habe durch Tests nichts anderes herausgefunden.
Hans
-
Das mache ich doch auch.
Hallo
das hatte ich auch nicht Dir, sondern icke (LP1) geantwortet.
Habe vielen Ärger vermeiden können.
Das glaube ich Dir. Ich habe damit absolut keine Probleme. Wozu meinst Du, gibt es die Strukturen?
bitter erkläre mal. Ich habe durch Tests nichts anderes herausgefunden
Siehe oben:
Wichtig ist nur, dass diese eine konkrete Abbruchbedingung haben, die auch irgendwann erreicht wird
...und...
Ist immer eine Frage der Strategie.
Gruß Ingo
-
Moin,
die "HookPleaseStop" selbst kommt nicht von Dauerschleifen! Ich hatte das Problem eben auf meiner Testanlage für MAS-Signale auch.
Ich habe mir eine weitere Testanlage für die Diagnose gebaut und dort die Ursache gefunden. Lua wird nur alle 200ms Sekunden ausgeführt, zwischen diesen Ausführungszeiten läuft die Anlage aber weiter. Wird in dieser Zeit ein Signal mit aktivierten Lua-Callback umgestellt, wird sich gemerkt, das der Callback ausgeführt werden soll. Normalerweise wird der Callback dann nach spätestens 200 ms im nächsten Lua-Zyklus ausgeführt.
Wenn der User aber vor der nächsten Ausführung in den 2D-Modus wechselt und dort z.b. irgendein anderes Signal von der Anlage löscht oder den Lua-Editor öffnet, kommt dann die Fehlermeldung und der Callback wird vergessen.
Minimaler Code zum Reproduzieren (Signal 1 kann z.B. 0-98 Zähler sein):
LuaEEPRegisterSignal(1) function EEPOnSignal_1(Stellung) end function EEPMain() EEPSetSignal(1,0,1) return 1 end
Die Main löst in jedem Durchlauf eine Umstellung aus, damit gibt es in jedem Zyklus einen Signal-Callback. Geht man dann in den 2D Modus und lädt das Lua neu, kommt immer der Fehler "HookPleaseStop" und der Callback wird nicht ausgeführt. Wenn man stattdessen eine neue Anlage lädt, kommt die Fehlermeldung dann auf der anderen Anlage. Das ist also eigentlich ein Timingproblem.
Wieso die Fehlermeldung trotzdem zusammen mit Dauerschleifen auftritt: Es ist halt ein Timing-Problem, wenn aufgrund von langsamen Schleifen der Lua-Code sehr lange braucht, schafft EEP nur noch wesentlich weniger Zyklen und so ein gemerkter Callback wird erst viel später ausgeführt. Damit ist auch die Wahrscheinlichkeit höher, das ein User mit den Wechsel in den 2D-Modus einen gerade gemerkten Callback verhindert und ggf. diese Fehlermeldung auslöst.
Beim Neuladen vom Lua-Script im 3D-Modus werden die gemerkten Callbacks einfach so vergessen. Das ist insoweit ärgerlich, weil die Callbacks so nicht 100% sicher sind um z.B. die Umstellung von anderen Signalen sicher durchzuführen.
-
Hallo Nero ,
ich kann Deinen Test bestätigen.
Ein weiterer Grund, warum man nie an einer laufenden Anlage bauen und diese auch nicht ungestoppt beenden sollte.
Das von Dir genannte Problem ist ein weiterer Grund für dabei möglicherweise auftretende Schaltfehler, die sich im Nachhinein nur schwer nachvollziehen lassen.
Eventuell könnten die EEP-Programmierer mit Deinem Versuchsaufbau diese Fehlermeldung beheben. Ob sie den nicht ausgeführten Callback-Signal-Aufruf für den nächsten Anlagen-Start "retten" können, können natürlich nur sie beantworten.
-