Bahnübergang Luascript

!!! Please ensure, that your contribution or question is placed into the relevant section !!!
Questions about rolling stock, for example, do not belong in "Questions about the Forum". Following is perhaps the right area where your question will be better looked after:
General questions to EEP , Splines, rolling stock, Structures in EEP, landscape elements, Signalling system and controlling, designers, Europe-wide EEP meetings , Gossip
Your cooperation to keep the forum clear is appreciated.
In the case of pictures that are attached to the article, the source must also be stated. This also applies to your own pictures, which were taken by you. Pictures without source information will be deleted!
  • Hallo liebe EEP Freunde,

    Habe ein script Problem: Habe schon mehrere Bahnübergänge mit LUA gesteuert, aber diesmal hakt es.

    In kleiner Testanlage funktioniert alles nach Wunsch. Der gleiche script an eine Lua von komplexer Anlage meldet gleich beim Überfahren des 1. Kontaktes "nil" in beiden Richtungen.

    Das script wieder kopiert in die Test Lua und alles Funktioniert. Ich brüte darüber und finde den Fehler nicht. Auffällig ist noch, dass die Speicherplätze bei der komplexen LUA am Ende nicht aufgelistet werden.

    Jedoch bei der Testanlage ist DS 73 und DS 74 vorhanden. Die Funktionen rufe ich mit Soundkontakten je Richtung auf. Wäre für Tipp dankbar, da es momentan bei mir klemmt. Gruß Bena

    function TSCHRSZ() --vor Tunnel Schranke Süd/Nord

    hResult = EEPSaveData(73,"TSCHRS zu")

    AuswahlTSCHR()

    end

    function TSCHRSA()

    hResult = EEPSaveData(73,"TSCHRS auf")

    AuswahlTSCHR()

    end

    function TSCHRNZ()

    hResult = EEPSaveData(74,"TSCHRN zu")

    AuswahlTSCHR()

    end

    function TSCHRNA()

    hResult = EEPSaveData(74,"TSCHRN auf")

    AuswahlTSCHR()

    end

    function AuswahlTSCHR()

    hResult, varTSCHRS=EEPLoadData(73)

    hResult, varTSCHRN=EEPLoadData(74)

    if varTSCHRS=="TSCHRS zu" or varTSCHRN=="TSCHRN zu" then EEPSetSignal(127,2)

    end

    if varTSCHRS=="TSCHRS auf" and varTSCHRN=="TSCHRN auf" then EEPSetSignal(127,1)

    end

    end

    :ma_1:

    EEP16, EEP15 , EEP 13, Win10/64 intel core i5-9400, 2,9 GHz, 16GB RAM, Nvida GTX 1050, mit SSD

    The post was edited 1 time, last by bena ().

  • Hi Bena


    Was hast du im Kontaktpunkt stehen?

    da darf nur TSCHRSA stehen, ohne () und ohne function davor.

    Und da darf auch kein Leerzeichen vor oder dahinter sein.


    Gruß Wilfried

    AMD Ryzen 7 2700x 8 Core 3,7-4,2 GH 16 Gb Ram NVIDIA GeForce GTX 1060 6 GB Ram Window 10 Prof 64 Bit

    Sun-Guru-Barebone I7-9750H 16 GB Ram NVIDIA GeForce GTX1660TI 6 GB Ram Window 10 64 Bit

    EEEC bis EEP 16.4 Plugin 1-2-3-4 Konvertierer Anl.Verbinder/Tauscher

    SchiefeEbene St Gotthard Waldeslust Nordost Blumenberg Nossen American Dream usw.

    8. bis 31. EEP-Treffen in Bremen ich war da 32. Treffen ich komme auch wieder

  • Im gezeigten Skript finde ich keinen Fehler.

    (Hier mal in lesbarer Form)


    Deshalb vermute ich, dass du diesen Teil auf der großen Anlage an unpassender Stelle ins Skript eingefügt hast.
    Oder du hast in den Kontaktpunkten Mist geschrieben (das Schlüsselwort function mit rein geschrieben oder die Klammern?)

  • Hallo Diabolo, Hallo Götz,

    Danke für eure schnellen Antworten. Habe nochmals alle Soundkontakte kontrolliert. Wenn die falsche Einträge hätten bekäme ich ja beim neu Laden bereits eine Fehlermeldung.

    Das Script habe ich ans Ende von LUA gesetzt. Davor ist ein anderer Bahnübergang, der einwandfrei funktioniert.

    Sobald eine Lok den 1. Kontakt überfährt bekomme ich: Error running function `TSCHRNZ`:attempt to call a nil value. In Gegen-Richtung entsprechend TSCHRSZ.

    Was mich so verrückt dabei macht, ich hab eine einfache Testanlage, bei der läuft der Script. Hab dabei nur die Signal# von 127 auf 1 geändert, sonst exakt gleich mit gleicher

    Anordnung der Kontakte. Die Schranke 127 ist mit 128 verknüpft. Am besten Feierabend und andermal weiter brüten. Kann ja nur eine Kleinigkeit sein.

    Gruß Bernd

    ps. Götz, schreib doch bitte mal, womit du die Scripte editierst, ich finde die Zeilennummern so praktisch. Danke

    EEP16, EEP15 , EEP 13, Win10/64 intel core i5-9400, 2,9 GHz, 16GB RAM, Nvida GTX 1050, mit SSD

    The post was edited 1 time, last by bena ().

  • Wenn die falsche Einträge hätten bekäme ich ja beim neu Laden bereits eine Fehlermeldung.

    Nein. Bei falschen Einträgen bekommst du genau die Fehlermeldung, die du genannt hast.

    Wenn Lua eine Funktion aufruft, die nicht definiert ist (weil der Name falsch geschrieben wurde) dann meldet es, dass es nil (= "not in list" oder einfach "nichts") gefunden hat.

  • Error running function `TSCHRNZ`:attempt to call a nil value

    Ist das die exakte Fehlermeldung? Ich kenne sie nur als "Error running function XYZ. Attempt to call ABC (a nil value)", was bedeutet, dass ein in der Funktion verwendeter Wert ABC "nil" ist, also ohne Inhalt, der eigentlich einen Inhalt haben soll.


    nil (= "not in list" oder einfach "nichts")

    "Nil" heißt einfach "null" im Sinne von "es ist nichts da". "Not in list" ist bestenfalls seine Eselbrücke. Nicht dass noch jemand glaubt, das wäre eine offizielle Abkürzung.

  • Hi Bena,

    das Script ist OK, der Fehler scheint vorher im Luascript zu liegen - setze doch mal das Script für den Bahnübergang vor das Script dessen Bahübergang funktioniert. Die Fehlermeldung deutet daraufhin, das LUA die Funktionen gar nicht mehr abarbeitet.

    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

  • "Nil" heißt einfach "null" im Sinne von "es ist nichts da". "Not in list" ist bestenfalls seine Eselbrücke.

    Hallo Oliver :)

    Nil steht für englisch not in list, also nicht in der Liste.

    Gruß Ingo

    Threema - Sicherer und privater Messenger

    Meine Threema-ID

    Warum Threema?


    Win 10x64 Professional, Gigabyte B360M AORUS, Intel Core i7-8700K, 32GB RAM, NVIDIA GeForce GTX 1050 Ti 4GB, Philips 273V7QDAB Full HD

    Windows Firewall und Defender
    EEP 15.1 Expert Patch 2, Plugins: 1

    EEP 16.4 Expert, Plugins: 1,2,3,4


    alt:
    Win 7x64 Professional SP1, Intel Core i5-3570, 16GB RAM, nVIDIA GeForce GT630, 2GB, 1920x1200 auf 26" TFT

    EEP6; EEP8-14; EEP 15.1 Expert Patch 2, Plugins: 1

  • Hallo,


    auch wenn's off-topic wird: Meiner Meinung nach ist nil die Zusammenziehung des lateinischen Worts nihil (=nichts). Diese These wird auch von Wikipedia gestützt, nämlich hier:

    nil steht für:

    Interessanterweise weiß die englische Wikipedia-Seite zu null nichts von dem Akronym "not in list".


    Gruß

    Christopher

    PC: Intel i7-7700K; 64bit; 4,2 GHz; 32GB RAM; GeForce GTX 1080 (8 GB); Win 10; EEP 6, 13.2 Plugins 1+2, 14.1 (Dev), 15 (Dev); HomeNOS 14 (Dev)
    Laptop: Intel i5 3230M; 64bit; 2,6 GHz; 8GB RAM; GeForce GT740M (1 GB); Win 8.1; EEP 6, 13.2 Plugins 1+2; HomeNOS 13 (User)

  • "nil, NULL and None are the names of the null pointer in various languages"


    Es ist meistens mit dem Geldgehalt meiner Brieftasche verbunden [Blocked Image: http://www.pic4ever.com/images/4fvgdaq_th.gif]


    EepNolie

    Desktop : Windows 10 Pro 64Bit - i7-4790 4.0Ghz - 32Gb RAM - Asus Geforce GTX-06G 1060 (6Gb) - Dual screen Asus VS247 24"
    Laptop : Windows 10 Home 64Bit - i7-4750HQ 3.2Ghz - 16Gb RAM - NVidia GTX960M


    Ich bin dabei seit EEP 6 und benutze jetzt EEP 16


    Free EEP-tools : Model Multiplier / Texture Multiplier / EEP window restore Tool / EEP Model Inventory Exporter


    37310-banner2018-jpg

  • - setze doch mal das Script für den Bahnübergang vor das Script dessen Bahübergang funktioniert.

    Hallo Allen, die einen Kommentar gegeben haben. Danke.

    Das was Kaffeschuerfer gesagt hat, hat´s gebracht. Obwohl ich kanns mir nicht erklären. Hab alles mehmals kontrolliert, kein "end" zu viel oder zu wenig. Die Aufrufe alles gut.

    Nach dem kopieren vor den funktionierenden Teil lief plötzlich alles. Danach hab ich einen weiteren Bahnübergang wieder durch kopieren ans Ende gestellt und das ging auf Anhieb.

    Schön wenn´s funktioniert, aber unbefriedigend wenn man nicht weiß warum:aw_1:Allen ein Dankeschön!!!

    EEP16, EEP15 , EEP 13, Win10/64 intel core i5-9400, 2,9 GHz, 16GB RAM, Nvida GTX 1050, mit SSD

  • Das was Kaffeschuerfer gesagt hat, hat´s gebracht.

    Ok. Dann ist das ja geklärt. Jetzt geht es nur noch um ...

    Nil.


    Und was sagt Wikipedia dazu? :as_1:

    Nil ist ein Strom in Afrika! :bn_1:


    So. Jetzt wisst ihr es.:an_1:


    :aq_1:Gruss Jürg


    Samsung Series 9 Laptop / Lenovo Z50 - 70 Laptop
    Intel i5 1.7 Ghz / Intel i7 2.0 Ghz
    4 Gb Speicher / 8 Gb Speicher
    Intel HD Graphics 4000 / NVIDIA Geforce 840M
    Windows 10 64 /Windows 10 64
    EEP15, EEP16 / EEP14, EEP15
    AnlagenBau / AnlagenLaufLass

    _____________________________________________________________________

    Update auf Version 2021 ist erledigt. :ae_1: Aber dummerweise hat auch die Version 2021 einen Virus.:ad_1:

  • Nil ist ein Strom in Afrika!

    So. Jetzt wisst ihr es.

    Mensch Jürg, wenn wir Dich nicht hätten... :as_1:

    Gut, dass wenigstens Du bei Wikipedia an die richtige Stelle schauen kannst.:ae_1:

    PC: Intel i7-7700K; 64bit; 4,2 GHz; 32GB RAM; GeForce GTX 1080 (8 GB); Win 10; EEP 6, 13.2 Plugins 1+2, 14.1 (Dev), 15 (Dev); HomeNOS 14 (Dev)
    Laptop: Intel i5 3230M; 64bit; 2,6 GHz; 8GB RAM; GeForce GT740M (1 GB); Win 8.1; EEP 6, 13.2 Plugins 1+2; HomeNOS 13 (User)

  • unbefriedigend wenn man nicht weiß warum

    Deshalb würde es helfen, wenn du einmal das komplette Skript zeigen würdest. Am besten die Version, welche nicht funktioniert hatte.

  • Hallo Goetz, danke, dass Du der Sache auf den Grund gehen willst.

    hier also der Teil der nicht funktioniert hat, danach habe ich lediglich den Teil vor kopiert und alles lief.

    function EMBWAuswahl() --z1349

    hResult, varBWBesetzt=EEPLoadData(72)

    hResult, varAZBWBesetzt=EEPLoadData(68)

    hResult, varBBWBesetzt=EEPLoadData(71)

    hResult, varBBOBesetzt=EEPLoadData(70)

    if varBWBesetzt=="BW frei" and varAZBWBesetzt=="AZBW besetzt"

    and varBBWBesetzt=="BBW frei" and varBBOBesetzt=="BBO frei" then

    hResult = EEPSaveData(72,"BW besetzt")

    EEPSetSignal(88,2)

    end

    BWAuswahl()

    end

    function BSCHROZ() --BergSchranke

    hResult = EEPSaveData(60,"BSCHRO zu")

    AuswahlBSCHR()

    end

    function BSCHROA()

    hResult = EEPSaveData(60,"BSCHRO auf")

    AuswahlBSCHR()

    end

    function BSCHRWZ()

    hResult = EEPSaveData(69,"BSCHRW zu")

    AuswahlBSCHR()

    end

    function BSCHRWA()

    hResult = EEPSaveData(69,"BSCHRW auf")

    AuswahlBSCHR()

    end

    function AuswahlBSCHR()

    hResult, varBSCHRO=EEPLoadData(60)

    hResult, varBSCHRW=EEPLoadData(69)

    if varBSCHRO=="BSCHRO zu" or varBSCHRW=="BSCHRW zu" then EEPSetSignal(87,2)

    end

    if varBSCHRO=="BSCHRO auf" and varBSCHRW=="BSCHRW auf" then EEPSetSignal(87,1)

    end

    function TSCHRSZ() --TunnelSchrankeSüd -- ab hier hats gestreikt

    hResult = EEPSaveData(73,"TSCHRS zu")

    AuswahlTSCHR()

    --Ausgabe()

    end

    function TSCHRSA()

    hResult = EEPSaveData(73,"TSCHRS auf")

    AuswahlTSCHR()

    --Ausgabe()

    end

    function TSCHRNZ()

    hResult = EEPSaveData(74,"TSCHRN zu")

    hResult, varTSCHRN=EEPLoadData(74)

    print("TunnelSchrankeSüd ",varTSCHRS," ",varTSCHRN)

    AuswahlTSCHR()

    --Ausgabe()

    end

    function TSCHRNA()

    hResult = EEPSaveData(74,"TSCHRN auf")

    AuswahlTSCHR()

    --Ausgabe()

    end

    function AuswahlTSCHR()

    hResult, varTSCHRS=EEPLoadData(73)

    hResult, varTSCHRN=EEPLoadData(74)

    if varTSCHRS=="TSCHRS zu" or varTSCHRN=="TSCHRN zu" then EEPSetSignal(127,2)

    end

    if varTSCHRS=="TSCHRS auf" and varTSCHRN=="TSCHRN auf" then EEPSetSignal(127,1)

    end

    --Ausgabe()

    end

    end


    --jetzt die funktionierende Version:

    function EMBWAuswahl() --z1349

    hResult, varBWBesetzt=EEPLoadData(72)

    hResult, varAZBWBesetzt=EEPLoadData(68)

    hResult, varBBWBesetzt=EEPLoadData(71)

    hResult, varBBOBesetzt=EEPLoadData(70)

    if varBWBesetzt=="BW frei" and varAZBWBesetzt=="AZBW besetzt"

    and varBBWBesetzt=="BBW frei" and varBBOBesetzt=="BBO frei" then

    hResult = EEPSaveData(72,"BW besetzt")

    EEPSetSignal(88,2)

    end

    BWAuswahl()

    end

    function TSCHRSZ() --TunnelSchrankeSüd --kopiert ohne zu verändern

    hResult = EEPSaveData(73,"TSCHRS zu")

    AuswahlTSCHR()

    --Ausgabe()

    end

    function TSCHRSA()

    hResult = EEPSaveData(73,"TSCHRS auf")

    AuswahlTSCHR()

    --Ausgabe()

    end

    function TSCHRNZ()

    hResult = EEPSaveData(74,"TSCHRN zu")

    AuswahlTSCHR()

    --Ausgabe()

    end

    function TSCHRNA()

    hResult = EEPSaveData(74,"TSCHRN auf")

    AuswahlTSCHR()

    --Ausgabe()

    end

    function AuswahlTSCHR()

    hResult, varTSCHRS=EEPLoadData(73)

    hResult, varTSCHRN=EEPLoadData(74)

    if varTSCHRS=="TSCHRS zu" or varTSCHRN=="TSCHRN zu" then EEPSetSignal(127,2)

    end

    if varTSCHRS=="TSCHRS auf" and varTSCHRN=="TSCHRN auf" then EEPSetSignal(127,1)

    end

    --Ausgabe()

    end

    function BSCHROZ() --BergSchranke

    hResult = EEPSaveData(60,"BSCHRO zu")

    AuswahlBSCHR()

    end

    function BSCHROA()

    hResult = EEPSaveData(60,"BSCHRO auf")

    AuswahlBSCHR()

    end

    function BSCHRWZ()

    hResult = EEPSaveData(69,"BSCHRW zu")

    AuswahlBSCHR()

    end

    function BSCHRWA()

    hResult = EEPSaveData(69,"BSCHRW auf")

    AuswahlBSCHR()

    end

    function AuswahlBSCHR()

    hResult, varBSCHRO=EEPLoadData(60)

    hResult, varBSCHRW=EEPLoadData(69)

    if varBSCHRO=="BSCHRO zu" or varBSCHRW=="BSCHRW zu" then EEPSetSignal(87,2)

    end

    if varBSCHRO=="BSCHRO auf" and varBSCHRW=="BSCHRW auf" then EEPSetSignal(87,1)

    end

    end

    function SCHRNSZ() --Schranke Nord Ost

    hResult = EEPSaveData(75,"SCHRNS zu")

    AuswahlNSCHR()

    --Ausgabe()

    end

    function SCHRNSA()

    hResult = EEPSaveData(75,"SCHRNS auf")

    AuswahlNSCHR()

    --Ausgabe()

    end

    function SCHRNNZ()

    hResult = EEPSaveData(76,"SCHRNN zu")

    AuswahlNSCHR()

    --Ausgabe()

    end

    function SCHRNNA()

    hResult = EEPSaveData(76,"SCHRNN auf")

    AuswahlNSCHR()

    --Ausgabe()

    end

    function AuswahlNSCHR()

    hResult, varSCHRNS=EEPLoadData(75)

    hResult, varSCHRNN=EEPLoadData(76)

    if varSCHRNS=="SCHRNS zu" or varSCHRNN=="SCHRNN zu" then EEPSetSignal(104,2)

    end

    if varSCHRNS=="SCHRNS auf" and varSCHRNN=="SCHRNN auf" then EEPSetSignal(104,1)

    end

    end







    EEP16, EEP15 , EEP 13, Win10/64 intel core i5-9400, 2,9 GHz, 16GB RAM, Nvida GTX 1050, mit SSD

  • bena

    Erstens empfinde ich es als unhöflich, dass du dir nicht die Mühe machst den Code formatiert einzustellen (und uns, die wir dir helfen möchten, somit diese Arbeit überlässt). Nachdem ich den Hinweis von eep-fan 13 gelesen habe, muss ich mich entschuldigen. Ich hatte die Frage übersehen.


    Und zweitens kann der Code nicht funktionieren, weil er keine EEPMain() Funktion enthält. Wenn EEP keine Rückmeldung beim ersten Aufruf der EEPMain() bekommt, dann ignoriert es das Lua Skript komplett.

    The post was edited 2 times, last by Goetz ().

  • bena ,


    wir haben auf unserer FileBase verschiedene PDF eingestellt, die dir den Umgang mit dem Forum erleichtern sollen.


    Lese dir mal bitte dieses PDF durch, welches dir die verschiedenen Symbole in der Editorleiste näher erläutert.

    Dann klappt das auch mit dem Code einstellen hier im Forum. :ae_1:


    Viele Grüße

    marler1957


  • Hallo Götz, danke für Deine Mühe, ich wollte Dir nicht 1515 Zeilen so reinkopieren und wusste nicht wie das mit dem hochladen geht. Bei anderer Gelegenheit hattest Du mich ja gebeten

    den script per e-mail zu schicken. Natürlich läuft das kompl. script mit "main". Aber lass mal gut sein. Es läuft ja jetzt. Könnte mir vorstellen, das beim kopieren irgendwo ein unsichtbares Zeichen stand.

    Danke Detlef, für Deine Verteidigung.

    Danke maler1957, hab lange gebraucht um rauszufinden, was Du mit filebase meinst. Werde mir das von der Editorleiste mal reinziehen. Hab die pdf runtergeladen. Ist ja doch umfangreich.

    Danke und Gruß an alle

    Bernd

    EEP16, EEP15 , EEP 13, Win10/64 intel core i5-9400, 2,9 GHz, 16GB RAM, Nvida GTX 1050, mit SSD