Fahrstrassenschaltungen mit Lua

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.
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.
  • Anmerkung juemei.

    Abgetrennt von hier.

    Hallo Heinrich,

    ich möchte noch eine kleine Anmerkung zu der Funktion "anmelden()" geben,

    du kannst es dir ersparen, im Funktionsaufruf den Parameter "Zugname"

    einzugeben, wenn du die Funktion abänderst wie folgt:

    Weiterhin viel Spaß.

    Gruß Dieter

    1.MSI 17,3" Intel® i7-8750H 16GB SSD + HDD GeForce® GTX 1060 »GV72 8RE-013DE (00179E-013)

    2. PC:Win10/64, i7-7700K, 4.2 GHz, GPU GTX 1070/8 GB, 16 GB RAM(DDR4), SSD 960 Evo 500GB, Ilyama PL2490
    EEP 6.1 - EEP 15 E, HomeNos 15

    Ich wünsche mir eine freizügige Script-Sprache und eine leistungsfähige Grafik Engine für EEP.
    Ein Leben ohne EEP ist möglich, aber sinnlos, so ganz sicher bin ich mir nicht mehr.

    "mal was ganz Einfaches" "rundum sorglos Paket"

    Parrys YouTube Videos
    https://www.twitch.tv/parry_36/

    2 Mal editiert, zuletzt von Parry36 (18. Oktober 2018 um 18:07)

  • Hallo Dieter,

    ich vermute, du meinst in der neuen Zeile 3 die von meiner Code-Zeile gesetzte globale Variable Zugname (statt Zugnamen).

    Das wird vermutlich funktionieren (allerdings war es nicht vorgesehen, dass es so funktioniert).

    Das verwenden von globalen Variablen in Funktionen kann die Fehlersuche deutlich erschweren, weil man nicht weiß, wo der Wert überhaupt herkommt, der (vielleicht?) gerade drinsteht.

    Deshalb ist meine Empfehlung für Heinrich: Lass es so, wie es ist, und gebe den Zugnamen als Funktionsparameter im KP-Aufruf mit.

    Und für alle anderen auch: Übergebt den Zugnamen als Funktionsparameter, und verzichtet, soweit es geht, auf globale Variablen.

    Viele Grüße

    Benny

  • erstmal ein Dank an alle, die mich bei meinem Problem unterstützt haben.

    Parry36 Auf die Antwort von Benny werde ich deine Beispiel mal in einer anderen kleineren Analge ausprobieren.

    Benny (BH2) da ich auf der Anlage schon einige FS habe, werde ich von einer Umänderung erstmal die Finger weglassen.

    ansonsten nochmals ein Dank an alle :be_1:

  • Benny (BH2),

    danke für die Richtigstellung, habe es sofort korrigiert.

    Grundsätzlich hast du Recht, dass man mit globalen Variablen in Funktionen

    sehr vorsichtig umgehen soll, allerdings ist deine Variable "Zugname" bekannt

    wie ein bunter Hund.

    Jeder der Lua in EEP KP´s nutzt, muß auch dein Codeschnipsel nutzen.

    Gruß Dieter

    1.MSI 17,3" Intel® i7-8750H 16GB SSD + HDD GeForce® GTX 1060 »GV72 8RE-013DE (00179E-013)

    2. PC:Win10/64, i7-7700K, 4.2 GHz, GPU GTX 1070/8 GB, 16 GB RAM(DDR4), SSD 960 Evo 500GB, Ilyama PL2490
    EEP 6.1 - EEP 15 E, HomeNos 15

    Ich wünsche mir eine freizügige Script-Sprache und eine leistungsfähige Grafik Engine für EEP.
    Ein Leben ohne EEP ist möglich, aber sinnlos, so ganz sicher bin ich mir nicht mehr.

    "mal was ganz Einfaches" "rundum sorglos Paket"

    Parrys YouTube Videos
    https://www.twitch.tv/parry_36/

  • Nur dass mein Zugname eigentlich keine globale Variable sein sollte...

    Am liebsten würde ich das korrigieren (wenn ich denn wüsste, wie). Aber weil das einige Skripte "kaputt machen" würde, kann ich es eh nicht. Aber ich versuche zu verhindern, dass sich diese Verwendung noch weiter verbreitet.

    Viele Grüße

    Benny

    PS: Falls es dazu noch mehr zu sagen gibt, bitte ich einen Admin/Moderator, das (ab #7) abzutrennen. Mit Heinrichs ursprünglicher Frage hat das nichts mehr zu tun.

  • Falls es dazu noch mehr zu sagen gibt,

    Davon gehe ich aus. Ich z.B wollte noch folgendes anmerken ...


    Jeder der Lua in EEP KP´s nutzt, muß auch dein Codeschnipsel nutzen.

    Nichts gegen Benny und seine wirklich cleveren Module aber....

    Nein. Nicht jeder. Ich benutze sie nicht.

    :aq_1:Gruss Jürg

    Es ist müssig, dauernd den Weltuntergang heraufzubeschwören. Man muss auch aktiv etwas dafür tun. :bn_1:

  • Wenn ich es noch recht im Kopf habe,:as_1:

    braucht man Bennys Schnipsel um Parameter/Daten zu übergeben.

    z.B. Lua-Aufruf im KP - test(parameter)

    Code
    function test(testvariable)
      if testvariable==  ...
      ...
    end

    wenn ich falsch liege, Bitte um Korrektur ... :ao_1:

    :aq_1:

    eep_gogo ( RG3 )

    -------------------------

    Intel i3-540 3,2GHz 8GB, RAID10, HD 6570 1GB, W7/64 Prof., EEP 6-6.1, 10-17.0, HN13+15/16+15/16DEV, TM, "Schiefe Ebene 6 + 8", "Bahn2000", "Faszination der St. Gotthard-Nordrampe"

  • Nein. Das ist glaube ich schon richtig, aber ...

    Nicht "Jeder der Lua in EEP KP´s nutzt" will auch Parameter übergeben.

    :aq_1:Gruss Jürg

    Es ist müssig, dauernd den Weltuntergang heraufzubeschwören. Man muss auch aktiv etwas dafür tun. :bn_1:

  • ja, da bin ich ja bei dir :bg_1:

    wollte doch nur den Sinn von Bennys Schnipsel erkären :ay_1::ac_1:

    :av_1::aq_1:

    eep_gogo ( RG3 )

    -------------------------

    Intel i3-540 3,2GHz 8GB, RAID10, HD 6570 1GB, W7/64 Prof., EEP 6-6.1, 10-17.0, HN13+15/16+15/16DEV, TM, "Schiefe Ebene 6 + 8", "Bahn2000", "Faszination der St. Gotthard-Nordrampe"

  • Benny hat mehrere geniale Schnipsel erstellt. Keine Frage.

    Ich verwende sie nur nicht. Das ist alles.

    Naja. Fast alles.

    Genauso wie Ideen externer Tools manchmal in EEP einfliessen sehe ich auch die Arbeit von Benny. Er bringt die Ideen die wichtig sind, um Lua in EEP zu erweitern.

    :aq_1:Gruss Jürg

    Es ist müssig, dauernd den Weltuntergang heraufzubeschwören. Man muss auch aktiv etwas dafür tun. :bn_1:

  • juemei,

    so ganz kann ich nicht verstehen, dass du absolut ohne Parameterübergabe

    in Funktionen im KP auskommen willst.

    Es ist doch gerade das Besondere, einer Funktion mit Parametern verschiedene

    Aufgaben zu zuordnen, sonst mußt du doch für fast alles verschiedene Fuktionen

    schreiben.

    Meiner Meinung nach hätte das Trend schon längst ins Programm einbinden müssen.

    Aber Benny hat das ja prima gelöst, man kann garnicht genug danke sagen, sonst

    müssten wir für alles mögliche Containerfunktionen schreiben wie anno tobac.

    Gruß Dieter

    1.MSI 17,3" Intel® i7-8750H 16GB SSD + HDD GeForce® GTX 1060 »GV72 8RE-013DE (00179E-013)

    2. PC:Win10/64, i7-7700K, 4.2 GHz, GPU GTX 1070/8 GB, 16 GB RAM(DDR4), SSD 960 Evo 500GB, Ilyama PL2490
    EEP 6.1 - EEP 15 E, HomeNos 15

    Ich wünsche mir eine freizügige Script-Sprache und eine leistungsfähige Grafik Engine für EEP.
    Ein Leben ohne EEP ist möglich, aber sinnlos, so ganz sicher bin ich mir nicht mehr.

    "mal was ganz Einfaches" "rundum sorglos Paket"

    Parrys YouTube Videos
    https://www.twitch.tv/parry_36/

  • Moin Moin,

    ...ich bin hier mal wieder am verzweifeln, dachte das Thema passt dazu...

    ...So ich hab mal das Video vom Gerd geschaut und brav alles abgeschrieben, teils sogar kapiert was er da erzählen will.Er hat das gut erzählt... so nun hab ich ja Gleisbesetztmeldungen erzeugt und mit einer Weiche hab ich das auch ausprobiert, siehe da klappt, nach Rechtschreibkorrektur :bi_1:...

    na nun wollte ich schlau sein, da der andere Bahnhofsteil etwas anders ist, wollte ich das mit Fahrstraßen lösen "ein" und umschalten ja nach Gleisbesetzung....

    warum um schaltet es denn jetzt nicht, hab sogar eine eigen Funktion eröffnet, obwohl ich glaub das es auch mit einer geht....

    aber erstmal muss es schalten, kann mir da jemand zu Seite stehen, weingstens ein bischen....:aq_1:

  • ....so hier noch das Script :aa_1:

    ...ab Zeile 60 ca.

    Einmal editiert, zuletzt von Dalle76 (10. November 2018 um 01:12)

  • brav alles abgeschrieben, teils sogar kapiert

    Genau da liegt dein Problem, Dalle.

    Denn du musst alles verstehen und nur teils abschreiben. Nicht umgekehrt.

    Du hast zu viel aus der Funktion Weichen einfach in die Funktion FSTR kopiert. Es reicht nicht, nur am Ende andere Signalnummern einzugeben. Und so, wie du diese Nummern geändert hast, ist es zudem nicht sinnvoll.

    Es wäre wenig sinnvoll, dir jetzt ein funktionierendes Skript* zur Verfügung zu stellen. Weil du daraus nichts lernen würdest. Viel effektiver wäre es, wenn du erzählst was du bisher nicht verstanden hast. Damit man dir helfen kann, diese Verständnislücken aufzufüllen.

    *Es ist auch nicht möglich, weil uns wichtige Informationen zu deiner Anlage fehlen.

    Einmal editiert, zuletzt von Goetz (10. November 2018 um 06:46)

  • Moin

    Nichts für ungut, aber dieses Script wäre mir viel zu kompliziert um es nachvollziehen zu können.

    Ich für meinen Teil habe alle Videos von Parry36 angeschaut und schalte nun fast alles mit Fahrstrassen und Lua.

    Nun mal zu deinem Script.

    Du schreibst du wolltest Fahrstrassen schalten, dann muss es in der Funktion aber heißen...

    1. EEPSetSignal(168,2)
    2. else
    3. EEPSetSignal(117,2)

    Beim Zielpunkt der Fahrstrasse muss du der Nummer des Fahrstarssenziels immer 1 dazu zählen wenn du sie in Lua ansprechen oder abfragen willst.

    Gruß Joachim

  • ...Hallo Joachim,

    ja ich hatte schon die Videos geschaut, aber ich kam nicht so ganz mit den Erklärungen klar, aber ich werd´s mal Schritt für Schritt mit machen, vielleicht kommen da ja noch erkenntnisse bei mir...

  • Ich kann nur empfehlen, nicht nur die Lehrvideos sich anzusehen, sondern

    ganz wichtig ist, die Demo-Anlagenversionen zu den Videos durchzuarbeiten

    und zu versuchen das dort gezeigte zu verstehen und in kleinen Schritten

    auf den eigenen Anlagen zu übertragen.
    Nur wenn man etwas verstanden hat und den Zusammenhang erkennt, sollte

    man an die nächste Version gehen.

    Der Erfolg ist so garantiert.

    Gruß Dieter

    1.MSI 17,3" Intel® i7-8750H 16GB SSD + HDD GeForce® GTX 1060 »GV72 8RE-013DE (00179E-013)

    2. PC:Win10/64, i7-7700K, 4.2 GHz, GPU GTX 1070/8 GB, 16 GB RAM(DDR4), SSD 960 Evo 500GB, Ilyama PL2490
    EEP 6.1 - EEP 15 E, HomeNos 15

    Ich wünsche mir eine freizügige Script-Sprache und eine leistungsfähige Grafik Engine für EEP.
    Ein Leben ohne EEP ist möglich, aber sinnlos, so ganz sicher bin ich mir nicht mehr.

    "mal was ganz Einfaches" "rundum sorglos Paket"

    Parrys YouTube Videos
    https://www.twitch.tv/parry_36/

  • Hallo Dieter,

    da stimme ich dir voll und ganz zu, man muss es verstehen was man selber dann schreibt. Deine Videos sind eine perfekte Grundlage dazu. Durch das Handbuch und deine Videos hab ich so nach und nach Lua verstanden und dafür bin ich dir sehr dankbar. :aa_1:

    Gruß Bodo

  • Hallo ihr beiden,

    dankbar bin ich auch nur bin ich immer wieder am verzweifeln, bei der Sacheund eigentlich sollte das die Aufgabe von Trend sein, solche Sachen wie:

    in deinem ersten Video, die Fahrstraße wird nicht mehr geschaltet, wenn Sie vorher noch durch eine andere gesperrt war, da muss man dann studieren um diesem Programm so eine Grundlegende Sache

    bei zubringen das der Zug danach weiterfahren darf...

    ohne Leute wie euch :aq_1::aq_1::aq_1:wäre dieses Programm garnix....

    Hochachtungsvoll....

  • eigentlich sollte das die Aufgabe von Trend sein

    Das kann Trend (bzw. EEP) dir leider nicht abnehmen.

    Denn es gibt zu viele Fälle, in denen man - je nach Vorlieben - unterschiedlich entscheiden möchte. Wenn beispielsweise an einer Einmündung zwei Züge warten und geregelt werden muss, welcher Zug warum die Freigabe bekommen soll.

    So, wie man in EEP die Anlagen komplett selbst gestaltet, so gestaltet man auch die Schaltungslogik selber. Das ist natürlich (in beiden Fällen) Arbeit, aber dafür ist die Freude umso größer, wenn am Ende alles den eigenen Vorstellungen und Wünschen entspricht.