Fahrstrasse wird mittels Lua gesetzt ohne dass eine Anmeldung vorliegt

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.
  • Hallo liebe Eep-Freunde,

    Ich habe eine Teststrecke gebaut um mich in die Steuerung von Fahrstrassen mittels Lua-scripts einzuarbeiten.

    Habe viel gelesen und auch die Tutorials zu dem Thema angeschaut.

    Bin kein Informatiker, habe aber Grundkenntnisse in der Programmierung (Fortran, ja ist schon einige Jahrzehnte her),

    VisualBasic für den Hausgebrauch in Office.

    Die Teststrecke besteht aus einem eingleisigen Knochen mit einem 2 gleisigen Bhf in der Mitte

    In dem Layout wird die Fahrstrasse 7 (Einfahrt_West Bhf zu Ziel 1 oder 2) aktiviert, obschon keine Anmeldung vorliegt.

    Das gleiche Problem tritt auf bei der Einfahrt_Ost Bhf zu Ziel 1 oder2 der Fahrstrasse 15.

    Die restlichen Fahrstrassen decken Blockstrecken ab und schalten ordnungsgemäss.

    Sämtliche Fahrstrassen werden nach Anmeldung korrekt aktiviert und wieder mittels Signalkontakt oder Zielsignal gelöscht.

    Ich kann mir keinen Reim darauf machen wieso eine Fahrstrasse aktiviert werden kann ohne dass eine Anmeldung vorliegt.

    Vielleicht hatte schon jemand ein ähnliches Problem und kann mir weiter helfen.

    mfG

    Roland

    Windows10 20H2 x64

    i5 750@2,67 GHz 8Go DDR3 2,13GHz GTX 970 4GB 1,25GHz

    EEP14 expert patch2 plugin 1

    Home-Nostruktor 14.0

  • Vielleicht hatte schon jemand ein ähnliches Problem und kann mir weiter helfen.

    Ohne einen Blick auf dein Skript und deine Kontaktpunkte haben wir keine Chance den Fehler in deinem System zu identifizieren. Denn dort wird er irgendwo stecken. Von selbst aktivieren sich die Fahrstraßen nicht.

  • Hallo Goetz,

    Soll ich das Script einfach hier rein kopieren oder wie kann ich es als Datei einbinden?

    Windows10 20H2 x64

    i5 750@2,67 GHz 8Go DDR3 2,13GHz GTX 970 4GB 1,25GHz

    EEP14 expert patch2 plugin 1

    Home-Nostruktor 14.0

  • https://www.dropbox.com/s/7kxo3rho4egq…erkehr.lua?dl=0

    https://www.dropbox.com/s/zw9t566bh2a5…output.txt?dl=0

    Hallo Goetz,

    Hier ist der Link für das Lua script.

    Hoffe es funktionniert

    Ich hänge auch noch eine Textdatei an,

    in der man sieht wann, während des Fahrbetriebs, Fahrstrassen angemeldet werden und wieder abgemeldet werden.

    Und schon im voraus vielen Dank für die Mühe, die du dir gibst.

    Windows10 20H2 x64

    i5 750@2,67 GHz 8Go DDR3 2,13GHz GTX 970 4GB 1,25GHz

    EEP14 expert patch2 plugin 1

    Home-Nostruktor 14.0

  • Hallo Roland

    ich habe nur jeweils drei Zeilen geänndert, seitdem läuft die Anlage Störungsfrei, zu mindest bei mir.

    Gruß G2000

  • Hallo Roland und @G2000,

    ich habe mir mal euren Scriptcode angesehen, vermutlich habt ihr die
    Anregung aus meinen Twitchsendungen, allerdings ist da ein kleines

    Missverständnis entstanden.

    Hier der korrigierte Code:

    Ich wünsche euch weiterhin viel Spaß beim Codieren.:aa_1:

    Siehe die Zeilen 54-56 und 68-70.

    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/

    3 Mal editiert, zuletzt von Parry36 (14. Dezember 2017 um 23:25)

  • Hier der korrigierte Code:

    Darf ich dich bitten dazu zu schreiben, was du korrigiert hast?

    Damit wir nicht "Original und Fälschung" spielen müssen um die 10 Unterschiede herauszufinden?

  • ich habe nur jeweils drei Zeilen geänndert

    welche sind das?

    Ich konnte in deinem geposteten Skript beim ersten Vergleich keinen Unterschied zum Original entdecken.

  • @Goetz,

    die hatte ich gekennzeichnet,

    habe jetzt aber noch zusätzlich die Zeilen dazugeschrieben,

    das sollte genügen.

    Solche Fehler entstehen immer dann, wenn man den Code noch

    nicht verinnerlicht hat, aber halt immer am Ball bleiben.:aa_1:

    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/

  • Herzlichen Dank Dieter,

    Ja deine Videos haben mir gefallen.

    Hatte mich schon gefragt, wie der select Befehl arbeitet.

    Das erste Argument gibt den Index an, ab dem die Ausgabe der folgenden Argumente erfolgt.

    In diesem Fall ist es die Eepfunktion EEPLoadData(x) in der die Route bei der Anmeldung gespeicher wurde.

    EEPLoadData(x) gibt als erstes Argument true zurück, wenn x besteht. Als zweites Argument die Route.

    Liege ich soweit richtig ?

    Deine Korrektur ist mir klar.

    Die beiden Inhalte der Funktion EEPLoadData(x) werden den beiden Variablen zugewiesen.

    Was mir nicht klar ist, ist wie der negative Index im select Befehl arbeitet.

    Würdest du mir das bitte kurz erläutern?

    Tschüss, muss jetzt weg.

    Bin morgen wieder online

    Gruss

    Roland

    Windows10 20H2 x64

    i5 750@2,67 GHz 8Go DDR3 2,13GHz GTX 970 4GB 1,25GHz

    EEP14 expert patch2 plugin 1

    Home-Nostruktor 14.0

  • Hallo Roland,

    zunächst freue ich mich, dass du verstanden hast, was da fehlerhaft war.
    Es ist richtig, dass die Funktion EEPLoadData(x) beim Aufruf zwei Werte
    zurück gibt, der erste Wert (hResult) kann nur (true)oder (false) sein, je nach-

    dem ob die Funktion einen Wert im Slotspeicher findet.

    Der zweite Rückgabewert (s_route) beinhaltet den im Slot gespeicherten Wert.

    Deshalb ist es nicht möglich mit dem zweiten Wert auf gesetzt oder frei zu

    prüfen.

    Ich werde aber zu der ausstehenden Lektion 005 noch in nächster Zeit etwas

    Ausführliches zu dem verwendeten Code berichten.

    Nun zu deiner Frage:

    Um beispielsweise in einer Codeschleife Funktionen zu iterieren muß der
    richtige Rückgabewert ausgegeben werden, dafür gibt es in Lua die Funktion

    select(), um festzulegen welchen Rückgabewert ich verwenden möchte, muß

    dies select() mitgeteilt werden, das macht man mit select( 2, EEPLoadData(x))

    zB. für den 2. Rückgabewert.

    Und da Lua für den syntact Sugar bekannt ist, gibt es auch einen -1 Wert,
    select(-1, EEPLoadData(x)) besagt, dass immer der letzte Wert zurückgegeben

    wird, egal wie viele Rückgaben eine Funktion hat.

    Hoffe ich konnte dir Helfen, bis zum nächten Treffen auf Twitch.

    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/

    6 Mal editiert, zuletzt von Parry36 (15. Dezember 2017 um 20:43)

  • :aa_1:Hallo Dieter,

    Danke für deine Erläuterungen zum Index -1 beim Lua select Befehl.

    An sich ergeben die beiden Varianten das gleiche Ergebnis.

    Es wird jeweils die Route ausgegeben und ist die Fahrstrasse nicht angemeldet,

    ist der Inhalt der Variablen '0'.

    Da ist bei mir der Groschen gefallen und genau diese '0' aktiviert die Fahrstrassen 7 und 15, wenn keine Anmeldung vorliegt.

    Die Null fällt unter andere Routen und als solche wird die unter 'else' definierte

    Fahrstrasse geschaltet.

    Habe die Zeilen unter 'else' neutralisiert.

    Die Teststrecke läuft jetzt wie gewünscht.

    Ohne unseren gemeinsamen Gedankenaustausch wäre ich nicht weiter gekommen.

    Nochmals vielen Dank an alle Beteiligten.:bp_1:

    Gruss Roland

    Windows10 20H2 x64

    i5 750@2,67 GHz 8Go DDR3 2,13GHz GTX 970 4GB 1,25GHz

    EEP14 expert patch2 plugin 1

    Home-Nostruktor 14.0

  • Roland

    wenn der korrigierte Aufruf in den Funktionen 7+15 entsprechend

    ausgeführt wurde, so ist es nicht unbedingt nötig den

    else Zweig zu löschen.

    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/

  • Ich hoffe, dass jeder verstanden hat wo das eigentliche Problem lag.

    Somit kénnten wir dieses Thema abschliessen glaube ich.

    Ich werde bestimmt noch auf andere Probleme treffen und

    natürlich sporadisch im Forum vorbei schauen.

    Gruss Roland

    Windows10 20H2 x64

    i5 750@2,67 GHz 8Go DDR3 2,13GHz GTX 970 4GB 1,25GHz

    EEP14 expert patch2 plugin 1

    Home-Nostruktor 14.0