LUA-Skript schaltet alle Fahrtraßen

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.
  • Dass genug andere freie Gleise zur Verfügung stehen, wird nicht erkannt bzw. berücksichtigt.

    Wenn der Weg für einen nach Westen ausfahrenden Zug geschaltet ist, dann sind die Gleise 3, 4 und 5 für eine Einfahrt gesperrt, weil die Ausfahrt den Hosenträger beansprucht.

    Und wenn die Fahrstraße für die Ausfahrt auch die Weiche 13 und die DKW 4 (für die Flankensicherung) enthält, dann sind auch diese in ihrer Lage festgelegt und somit bleibt für die Einfahrt nur noch ein Gleis verfügbar.

    Wenn du in alle Fahrstraßen beide Weichen, aber nur die befahrene DKW integrierst, dann sollte es laufen.

    An deinem Skript gibt es nichts auszusetzen und alle alternativen Skripte werden dein Problem nicht lösen. Weil es nicht durch das Skript verursacht wird.

  • Also hat er die Freigabe an der falschen Stelle.

    Die sollte über eine Kontakt erfolgen, nachdem der letzte Wagen des Zuges in sein Bahnhofsgleis eingefahren ist.

    EEP16.1 Patch 2, HomeNos15, Modellkatalog, Blender 2.8, Tauschmanager? , Hugo :aq_1:

  • Hi eep_gogo,

    ich weiß, es ist schon verwirrend und durcheinander.

    Hier sind die Einträge in der Main und meine bisherigen Slots:

    Die Einträge für die Einfahrten Ost und West sind unterschiedlich, da ich den Fehler darin vermutete. Was aber bisher nichts half.


    Die Anfrage zur Schaltung einer FS erfolgt per KP:

    [Blockierte Grafik: http://up.picr.de/31179242ww.jpg]

    Aufgelöst werden die FS ebenfalls über KP, allerdings erst nach 180m:

    [Blockierte Grafik: http://up.picr.de/31179263fj.jpg]

    Das Ende der FS ist erst am Bahnsteigende, kurz vor dem Ausfahrtsignal:

    [Blockierte Grafik: http://up.picr.de/31179324su.jpg]

    Sorry Euch allen, dass Ihr diese Info erst jetzt bekommen habt.

    Beste Grüße. Ralf.

    Beste Grüße. Ralf


    Intel Core i7; Prozessor 7700HQ 2,8 Ghz; 24 GB RAM; NVIDIA GeForce GTX 1060; Windows 10 Home Premium (64 Bit)

    EEP 7,8,9,-,11,12,13,14,15,16,17

  • ... hättest du mal gleich zu Anfang so beschreiben sollen. Dann hätten wir nicht alle falsche und unpassende Antworten gegeben.

    Tut mir leid. Kommt nicht wieder vor (hoffe ich zumindest). :ae_1:


    Weil die letzte mögliche Fahrstraße bleibt dann eingestellt.

    Das hatte ich bisher nicht gewusst. Ich dachte, jedesmal wird neu "gewürfelt".

    Beste Grüße. Ralf.

    Beste Grüße. Ralf


    Intel Core i7; Prozessor 7700HQ 2,8 Ghz; 24 GB RAM; NVIDIA GeForce GTX 1060; Windows 10 Home Premium (64 Bit)

    EEP 7,8,9,-,11,12,13,14,15,16,17

  • Sorry Euch allen . . .

    Das ist auch nötig !!!:af_1::ag_1::bg_1:

    Siehe #19 und #21

    ich lasse Goetz mal überprüfen, ob seine Gedankengänge bzgl. dieser neuesten/allerletzten Info noch stimmig sind !:bj_1::am_1::an_1:

    :aq_1:

    Dazu hast du z.B. auch keine Bemerkung gemacht.:ma_1::bo_1: (Nix für ungut, alles (nur) Spass ???)

    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"

  • Bemerkungen zu den Bemerkungen von Goetz in #21,

    hast du seine Ausführungen zur Lösung ver-/befolgt ?

    Er hatte ja die ausführlichere Info von #24 noch nicht.

    Deshalb sind wir in den Bemühungen zu helfen oft auf Vermutungen zur Ausgangslage "verdammt":bn_1:, siehst ja wo das hinführt:at_1:, Verwirrung allerorten.

    Also nächstes Mal gleich den gesamten "Hammer" rauslassen, eine Lösung bekommst du dann vielleicht schneller.

    Trotzdem alles locker.:bg_1:

    :aq_1:

    Mit der "Problempräsentation" hast du ja keine Probleme:ae_1::af_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"

  • Bemerkungen wozu?

    Dazu, welche zusätzlichen Weichen und DKWs in den Fahrstraßen mit enthalten sind.

    Zeig mal bitte die Fahrstraße von West ins Gleis 2 (von unten gezählt.)

    Und nur diese, damit man auch alle enthaltenen Weichen farbig unterlegt sieht.

    Ich dachte, jedesmal wird neu "gewürfelt".

    for i = 2,6,1 do würfelt nicht.

    Es führt die folgenden Befehle bis zum zugehörigen end der Reihe nach immer wieder aus.

    Zuerst mit i = 2, dann mit i = 3, i = 4 etc. bis i = 6

  • Hallo zusammen,

    for i = 2,6,1 do würfelt nicht.

    Es führt die folgenden Befehle bis zum zugehörigen end der Reihe nach immer wieder aus.

    Zuerst mit i = 2, dann mit i = 3, i = 4 etc. bis i = 6

    das hatte ich nicht gewusst bzw. verstanden. Ich wollte eine Funktion, mit der ICH die Reihenfolge bestimmen kann. Oder sogar ein Gleis auslassen, ohne dass ich es per Hand als besetzt schalten muss. Oder vielleicht sogar eine Zufallsfunktion einbauen kann.

    Ich hatte diesen Bahnhof vor einiger Zeit gebaut, um mit Lua über if-then jeden Zug auf jedes Gleis fahren zu lassen. Das Gleiche sollte nun mit Lua und Fahrstraßen passieren.

    Es tut mir leid, dass ich Euch in eine falsche Richtung geführt hatte. Ich nahm an, man ändert die for-do Schleife ein wenig und es funktioniert.

    Hier noch einige Ergänzungen zur Testanlage.

    die Einfahrt West auf Gleis 4 linker Teil:

    [Blockierte Grafik: http://up.picr.de/31180767pd.jpg]

    rechter Teil:

    [Blockierte Grafik: http://up.picr.de/31180791vr.jpg]

    Aufregender ist die Einfahrt West auf Gleis 2:

    [Blockierte Grafik: http://up.picr.de/31180807ln.jpg]

    Hier der rechte Teil von Gleis 2:

    [Blockierte Grafik: http://up.picr.de/31180824gg.jpg]

    Ich habe ja kein Problem mehr mit Kollisionen. Das habe ich mit Hilfe von Götz geklärt. Ich habe die entsprechenden Signale der Gegenrichtung blockiert.

    Hier noch als Beispiel die Ausfahrt nach West von Gleis 4:

    [Blockierte Grafik: http://up.picr.de/31180842vm.jpg]

    Und Gleis 5 nach West:

    [Blockierte Grafik: http://up.picr.de/31180853am.jpg]


    Ich vermute nun, dass meine Zugfrequenz unrealistisch hoch ist. Und zweitens fährt im richtigen Leben wohl auch kein Zug von ganz rechts nach ganz links.

    Habt nochmals vielen Dank für Eure Bemühungen.

    Schönen 2. Advent.

    Beste Grüße. Ralf

    Beste Grüße. Ralf


    Intel Core i7; Prozessor 7700HQ 2,8 Ghz; 24 GB RAM; NVIDIA GeForce GTX 1060; Windows 10 Home Premium (64 Bit)

    EEP 7,8,9,-,11,12,13,14,15,16,17

  • Code
    mit der ICH die Reihenfolge bestimmen kann.

    Die Reihenfolge könntest du in einer Tabelle festlegen, die Schleife würde dann vielleicht so aussehen:


    Code
    FahrstrWest = {2, 4, 3, 1, 5}
    
    function FS_EinfahrtWest () 
        if select (2, EEPLoadData(EinfahrtWest)) then     -- lädt Einfahrt West aus Speicher
            for n, i in ipairs (FahrstrWest)    do
                EEPSetSignal (31,i,1)
            end
        end
    end

    oder mit Würfelfunktion (bei diesem einfachen Code kann es unter Umständen etwas länger dauern wenn nur noch ein Gleis frei ist) :

    Code
    function FS_EinfahrtWest () 
        if select (2, EEPLoadData(EinfahrtWest)) then     -- lädt Einfahrt West aus Speicher
            i = math.random(1,5)
                EEPSetSignal (31,i,1)
            end
        end
    end

    EEP 15.1 EEP 16
    MS Windows 10 Pro 64bit
    Prozessor: AMD FX-8370 Eight-Core Processor 4,0GHz // RAM: 32GB // SSD 256GB // Grafikkarte: GeForce GTX 950

  • Der Fehler liegt m.E. darin, dass in der for...do alle Durchläufe abgearbeitet werden, dadurch werden die FS der Reihe nach (virtuell) geschaltet und die jeweils letzte bleibt dann aktiv.

    Wenn man die Funktion "FS_EinfahrtWest()" in der EEP Main aufruft kann man sich die Schleife sparen und stattdessen einen globalen Zähler einsetzen. Hier mal ein Script dazu:

    Guten Morgen, Dieter,

    genau darüber bin ich gestolpert. Die Verwendung eines Zählers ist eine gute Idee. Damit kannte ich mich bisher nicht aus.

    Vielen Dank und schönen 2. Advent. :aq_1:

    Beste Grüße. Ralf.

    Beste Grüße. Ralf


    Intel Core i7; Prozessor 7700HQ 2,8 Ghz; 24 GB RAM; NVIDIA GeForce GTX 1060; Windows 10 Home Premium (64 Bit)

    EEP 7,8,9,-,11,12,13,14,15,16,17

  • Moin Ralf,

    eigentlich ist es ja kein richtiger Fehler, denn es wird ja nur eine FS geschaltet.

    Bei meiner Version mit Zähler oder Slot wird einfach der aktuelle Wert gespeichert.

    Da die Funktion in der Main() immer wieder aufgerufen wird kann man hier auf die for...do verzichten. Aber wie Götz schrieb wird dann ggf. mehrmals die Funktion aufgerufen.

    Wenn du aber mit Zufallszahl (math.random) arbeitest brauchst Du auch mehrere Durchgänge.

    Schönen 2. Advent allen:co_k:

    Dieter

    Gruß
    Dieter

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

    Sie haben Lua? :ad_1: Ist das ansteckend?

    Bleibt alle schön EEP-besessen :ae_1:

    Hardeware und Software

    __________________________________________
    EEP alle Versionen ab EEP6 mit allen Plugins,
    Homenos5, Homenos8,...,HomeNos17 DEV...
    Intel I7 4790k 4x 4Ghz, 32 GB RAM, NVidia GTX 1080 ti 11GB, Direct x V11, Windows 10 pro 64 Bit,
    Laptop Medion Erazer, 16GB RAM, 500GB SSD, 2 TB HDD, GT 850 von Nvidia, Windows 10 Home 64bit

  • Wenn du aber mit Zufallszahl (math.random) arbeitest brauchst Du auch mehrere Durchgänge.

    Nicht zwingend.
    Du kannst die möglichen Ziele zufällig in einer Tabelle anordnen und dann diese Tabelle in einem Rutsch abarbeiten. Das hat obendrein den Vorteil, dass trotz zufälliger Reigenfolge kein Weg mehrfach (vergeblich) versucht wird.

    Wie man eine Tabelle zufällig verwürfelt, hatte ich hier mal in einem früheren Thread gezeigt.

    Das Verwürfeln hatte ich so gelöst:

    Code
    for i = #Tabelle,2,-1 do
        Zufall = math.random(1,i)         -- wähle zufälligen Platz aus dem vorderen Teil
        table.insert(Tabelle,table.remove(Tabelle,Zufall)) -- und verschiebe ihn ans Ende
    end

    Diese Methode eignet sich ausschließlich für Tabellen, deren Inhalt lückenlos und bei 1 beginnend durchnummeriert ist.

    Einmal editiert, zuletzt von Goetz (10. Dezember 2017 um 18:20) aus folgendem Grund: Code-Beispiel hinzugefügt

  • Durch lesen dieses Themas bin ich auf die Idee gekommen auch endlich mal mit Lua anzufangen und habe folgendes geschrieben:

    ich möchte mit dem code erreichen, dass wenn ein Zug sich anmeldet, er gespeichert wird. Dabei sollen die Nummer des Fahrstraßensignals (wird per Kontaktpunkt übergeben) und die Route des Zuges zusammen als ein Paaar gespeichert werden.

    Mit SlotNames von BH2 habe ich es versucht zu realisieren.

    Hier bekomme ich aber Fehler.

    Die Abfrage:

    if SlotFuncs.lookupSlotNr("Einfahrt", 3)=="NV" then
    funktioniert bei meiner Test Anlage nicht. (Zeile 32)

    EEPSetSignal(18,3)

    ist dabei ein Fahrstraßensignal was gestellt werden soll. (Zeile 34)

    Ich habe einfach eine Gleisharfe mit 4 Gleisen aufgebaut und damit Einfahrten experimentiert.

    Vlt. kann mir ja jemand helfen. :ba_1:

    Sollte dies zu diesem Thema überhaupt nicht passen, dann bitte einmal ausbetten.

    Lg Stephan :aa_1:

    ______________________________________________________________________________

    - Notebookinformation:

    AMD Ryzen 5 1600 6x 3,2GHz; 16GB DDR 4; Radeon RX 580 4GB GDDR5

    - Rechnerinformation:

    AMD Ryzen 5 3600 6x 3.6GHZ; 32GB DDR4; Radeon RX 5700 XT 8GB GDDR6

    ______________________________________________________________________________

    - EEP Versionen:
    EEP 15, EEP 13-Expert; EEP 12-Expert; EEP 11; EEP X-Expert; EEP 9;EEP 8; EEP 7; EEP 6; EEP 5

  • Hallo,

    möchte mich ein wenig mit einschleichen. Habe Fahrstraßen angelegt und mit Lua angesteuert. Klappt alles prima nur der VT98 schaltet nicht den Kontakt. Es sit ein Sound Kontakt mit der Anweisung EEPSaveData(29,nil) und eine Wartezeit von 20 Sek eingestellt. Die andere Lok 229-181 schaltet alles brav nur der VT98 nicht. Liegt es an dem Modell. Bei dem zweiten Bahnhof ist es das gleiche Problem.

    Gruß Egon

  • Liegt es an dem Modell.

    Ganz sicher nicht, Egon.

    Das Modell macht in dieser Hinsicht keinen Unterschied.

    Vermutlich läuft dein Schienenbus nicht im Automatikmodus?

    stephan25

    Ich schau mir deinen Code mal an. Vielleicht entdecke ich ja etwas, dass dir hilft ...

  • stephan25

    Die Abfrage klappt mit if SlotFuncs.lookupSlotNr("Einfahrt", "Route")=="NV"

    Es ist vermutlich nicht gewährleistet, dass der dritte Slotname auch an der dritten Position landet.

    Wenn ich alle Nummern von 1 bis 10 auslese, dann bekomme ich zehnmal nil. Denn die einzelnen Indexe haben ja keine Nummer bekommen, sondern Namen.

    Aber wenn du Namen verwenden willst, dann ist es doch sowieso sinnvoller dabei zu bleiben.

    2 Mal editiert, zuletzt von Goetz (16. Januar 2018 um 16:48)

  • Danke Goetz aber der VT98 schaltet andere Kontakte zB am Bahnübergang ohne Probleme. Auch die Fahrstraßen auf der Strecke nur am Bahnhof nicht Nun gut werde einmal auf einer Teststrecke die Situation aufbauen und dann sehen was geschieht.

    Gruß Egon