Danke Dieter, werde jetzt versuchen Dein Sorglospaket bei meiner kleinen Anlage einzubauen.
Erst mal begreifen, dann basteln.
Danke.
Danke Dieter, werde jetzt versuchen Dein Sorglospaket bei meiner kleinen Anlage einzubauen.
Erst mal begreifen, dann basteln.
Danke.
Also ich finde das Sorglos Paket von " Parry36 " richtig gut. Es ist etwas weniger zu schreiben und man muss sich nicht ständig mit den Slot um her kämpfen, welche man noch frei hat oder schon in Verwendung ist.
Hatte beim Umbauen auf das "Sorglos Paket" von " Parry36 " doch einige Probleme.
Jetzt funktioniert das bei mir Wunderbar.
Danke.
Hallo tigertapse ,
es würde mich interessieren, welches Problem du beim
Umbau deiner Anlage hattest.
Vielleicht kann ich das berücksichtigen, wenn ich demnächst meinen
Anlagenumbau auf ein Schaltungskonzept erweitere, das nur noch
eine Tabelle mit einer Funktionsbeschreibung benötigt.
Es würden damit alle Funktionen der Fahrstrassensteuerung entfallen.
Diesen Umbau werde ich dann in einer Twitchsendung dokumentieren
und erklären.
Gruß Dieter
Hallo Parry36,
beim Umbauen auf das Sorglos Paket. Hatte ich mich komplett in den Funktionen für die einzelnen Fahrstraßen verheddert und mit externer Tabelle gearbeitet die per require Befehl eingebunden wurde. Auf der Anlage waren die Züge noch unterwegs.
Habe damit angefangen den Umbau dort zu beginnen wo keine Züge waren z.b. auf freier Strecke bei einer FS mit mehreren Abzweig Mögklichkeiten.
Mit diesem Umbau schaltete von nun an nur noch der 1ste Fahrweg von 3 FW. Habe ewig den Fehler gesucht und nicht gefunden. Die gesamte Anlage waurde lam gelegt. Danach hatte ich die gesamte Tabelle in das LUA-Hauptprogramm integriert und siehe da es funktionierte auf einmal alles wieder.
Hatte meine ganzen Züge dann in das Depot fahren lassen und konnte dann alles in ruhe ohne parallel betrieb umbauen.
Vor dem gesamten Umbau zum "Sorglos Pakt" hatte ich alles mit diesen Slotspeichern. Da konnte ich diese Tabelle auslagern und es hatte alles einwandfrei funktioniert.
Mit dieser neuen Variante funktioniert das irgendwie nicht.
Tigertapse
Hallo tigertapse ,
es freut mich, dass du deine Probleme in den Griff bekommen hast,
es ist richtig, die Tabelle für die Fahrstrassen- Id´s muß zwingend global
deklariert werden und vor der Nutzung im Programmcode liegen.
Vielleicht noch ein guter Rat, ich hatte bei der parallelen Abarbeitung ebenfalls
Schwierigkeiten, habe dann Nägel mit Köpfen gemacht und in Notepad++ den
gesamten Code komplett neu geschrieben und dann alles auf einmal ins
Anlagenscript kopiert.
Diese Methode war fehlerfreier und klappte auf Anhieb.
Gruß Dieter
Alles anzeigenHallo tigertapse ,
es freut mich, dass du deine Probleme in den Griff bekommen hast,
es ist richtig, die Tabelle für die Fahrstrassen- Id´s muß zwingend global
deklariert werden und vor der Nutzung im Programmcode liegen.
Vielleicht noch ein guter Rat, ich hatte bei der parallelen Abarbeitung ebenfalls
Schwierigkeiten, habe dann Nägel mit Köpfen gemacht und in Notepad++ den
gesamten Code komplett neu geschrieben und dann alles auf einmal insAnlagenscript kopiert.
Diese Methode war fehlerfreier und klappte auf Anhieb.
Gruß Dieter
Hallo, Parry36
vielen Dank für die Rückantwort.
Warum kann ich diese mit require nicht aufrufen? Meine ganzen Fahrwege und andere wie z.b. meine Geschwindigkeitscript laufen alle einwandfrei mit dem Aufruf mit require. Nur halt die Tabelle nicht.
Mir ist auch was Aufgefallen. Lagere ich die Tabelle aus werden die umlaut im Ereignisfenster in Kryptische Zeichen ausgegeben. Ist die Tabelle wieder im LUA-Hauptprogramm dann schreibt er auch die Umlaute so wie ich sie in der Tabelle stehen habe.
Wenn die Tabelle dann im Hauptprogramm stehen muss, dann muss ich das wohl oder übel so lassen.
Meine FS werden alles geschaltet so wie ich es vorgesehen habe.
Änderungen am Script egal welches, schreibe ich immer mit Notepad++ weil da alles viel übersichtlicher und auch farblich so einiges abgesetzt ist. Mit diesem Programm macht das schreiben richtig spaß.
Vielen Dank.
Hallo Sebastian,
du mußt in Notepad++ bei den Dateien die Einstellung "ANSI" wählen, dann
funktionierts auch mit den Umlauten.
Wegen der Tabelle habe ich dir eine PN geschrieben.
Gruß Dieter
Habe mit EEP eine neue Anlage erstellt.
Die erzeugte Anlage.lua Dateien enthält die Kodierung UTF-8 und nicht ANSI. So wird es mir jedenfalls von Notepad++ angezeigt.
So wird es mir jedenfalls von Notepad++ angezeigt.
Weil Skripte reine Textdateien sind, die keinerlei Informationen darüber enthalten, welche Kodierung verwendet wurde. In solchen Dateien steht nichts weiter als der Text selbst.
Notepad++ und andere Editoren können also nicht wissen, welche Kodierung verwendet wurde.
Und weil man einer Textdatei nicht entnehmen kann, welche Kodierung verwendet wurde, muss man auch selbst darauf achten, dass man Texte richtig kodiert. Für EEP heißt das: in ANSI kodieren.
Hallo tigertapse , Sebastian,
dein eMailtext hat die Aufklärung gebracht, jetzt verstehe ich was du
mit der nicht funktionierenden Tabelle gemeint hast.
Deshalb möchte ich es auch hier im Forum erklären:
Wenn man in eine Beschreibungstabelle für die Anlagen FS die
benötigten Funktionen zB. per Referenz func = FS_234 verwendet,
so ist es zwingend notwendig die Funktionen vor der Referenz zu
deklarieren, wenn man nach der Referenz deklariert, so geht das
auch zB. so: a_FS[234].func = function()...
Hat man eine eindimensionale Tabelle ohne Stringkey, so genügt das Einfügen in die
Tabelle zB. per a_FStabelle:FS_234()... auch nach der Tabelle.
Was sollte Sebastian also tun, wenn er seine Tabelle per require() auslagern
will?
Antwort:
Er muß sein require() nicht am Anfang des Anlagenscriptes setzen, sondern
erst nach der Deklaration seiner Funktionen. Oder er könnte ...?
Ich habe dieses Vorgehen in verschiedenen Videos bereits erklärt.
Man sollte immer im Hinterkopf behalten, wenn ich etwas referenzieren
will, so muß das Ziel (Tabelle oder Funktion) bereits vorhanden sein.
Gruß Dieter
Hallo Parry 36.
Guten Abend Wolfgang66
Meine Vermutung : mit dem Übefahren des KP's nach dem Signal, wird das Signal auf HALT gestellt. Die Anmeldung der FS steht aber noch auf 'true'. Nachdem die Lok die FS verlassen hat, wird die FS wieder aktiviert ( wegen 'true'). Damit wird auch das Signal wieder auf FAHRT gestellt. Nach dem Passieren des FS-Signals muss die Anmeldung der FS zurückgenommen werden. Im KP für das Signal (HALT) kann das mit 'EEPSaveData( FS-id , nil )' erledigt werden. Das soll nur ein praktikabler Vorschlag sein.
Viel Erfolg und ein Gruß aus dem Rheinland,
Michael
Danke Michael,
Ich werde es mal so machen, es sind drei Blöcke hintereinander und einer davon spinnt und schaltet auf FAHRT. Nicht Alle, aber Alle haben die gleichen Vorrausetzungen. Es soll doch kein Zug auffahren, wenn ein Block besetzt ist.
Wolfgang66
Nicht Alle, aber Alle haben die gleichen Vorrausetzungen.
Ich denke nicht, dass sie bei dir alle die gleichen Voraussetzungen haben. Sonst würden sich auch alle gleich verhalten.
Aber wir sehen nicht, was du wie implementiert hast. Wir sehen nicht, welche Kontaktpunkte bei dir wo sitzen und wie die Lua Funktionen heißen, die in diese Kontaktpunkte eingetragen sind. Wir sehen auch nicht, was du in dein Lua-Skript geschrieben hast. Wir haben ehrlich gesagt überhaupt keine Ahnung, was du da gemacht hast. Wie sollen wir da erkennen, wo dir ein Fehler unterlaufen ist? Möglicherweise nur ein winzig kleiner Schreibfehler oder Zahlendreher?
Hallo, Goetz, Du hast Recht, der Tipp mit den Zahlendreher war sehr gut, man schaut 100mal über den gleichen Fehler und man sieht ihn nicht. Entschuldigung.
Danke
Wolfgang66