Bahnübergang mit Lua die xte.

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 zusammen, habe mir mit diesem Code eine Bahnübergangssteuerung erstellt. Funzt auch mit einem BUE. Nun möchte ich mit diesem Code aber mehrere BUE's steuern. Mit den Signalen geht das. Wie aber bekomme ich den Zähler auf mehere BUE'S eingestellt?

    für Eur Hilfe im voraus schonmal vielen Dank.

    mfg Micha :aq_1:

    Meine Daten

    Taichi X399, AMD X1950 3,40 Ghz, 64GB Ram, Geforce GTX 1080 8GB

    Monitor : Samsung C49RG94SSU

    EEP 16.3 Plugin all in :as_1:

    EEP 17.1

    Windows 10 Pro, Version 20H2, BSBuild 19042.1052

    "Geduld ist das Schwerste und das Einzige, was zu lernen sich lohnt. Alle Natur, alles Wachstum, aller Friede, alles Gedeihen und Schöne in der Welt beruht auf Geduld, braucht Zeit, braucht Stille, braucht Vertrauen."

    Hermann Hesse

  • In Zeile 2 baust du die Signal-ID in einen String ein und in Zeile 3 holst du sie aus diesem String wieder raus. Warum so kompliziert?

    Die ID steht doch in deiner Variablen namens Sig_ID von Anfang an drin.

    Und den String aus Zeile 2 verwendest du anschließend nicht mehr.

    Außerdem machst du mit der Aktion aus einer Zahl einen String. EEPSetSignal() braucht die ID aber als Zahl.

    Und wenn du mehrere BÜs hast, dann brauchst du mehrere z. Für jeden BÜ ein eigenes.

  • Hallo Joachim, danke für den Tipp, wusste ich nicht. Muss ich mir mal zu gemüte führen :ae_1:

    Hallo Goetz, ich sollte mir angewöhnen unter jeder Codezeile ein print Ereigniss zu schreiben dann würde ich meine Fehler schneller finden :ma_1: Das mit dem z(Zaehler) ist genau der Punkt wo ich so nicht weiter komme.

    mfg Micha :aq_1:

    Meine Daten

    Taichi X399, AMD X1950 3,40 Ghz, 64GB Ram, Geforce GTX 1080 8GB

    Monitor : Samsung C49RG94SSU

    EEP 16.3 Plugin all in :as_1:

    EEP 17.1

    Windows 10 Pro, Version 20H2, BSBuild 19042.1052

    "Geduld ist das Schwerste und das Einzige, was zu lernen sich lohnt. Alle Natur, alles Wachstum, aller Friede, alles Gedeihen und Schöne in der Welt beruht auf Geduld, braucht Zeit, braucht Stille, braucht Vertrauen."

    Hermann Hesse

  • Hallo zusammen, zu dem Zaehler fällt mir zur Zeit nix ein.

    So sieht der Code jetzt aus und lüppt mit einem BUE.

    Lua
    function BUE(Sig_ID)
            if z <=0 then
                EEPSetSignal(Sig_ID, 1)
                    z=0
            elseif z == 1 then
                EEPSetSignal(Sig_ID, 2)
        end
            return z
    end

    Noch ne Frage, kann man functionen in Tabellen schreiben? So könnte man mehrere functionen ablegen und bei Bedarf, je nach BUE, anfordern bzw. abarbeiten.

    mfg Micha :aq_1:

    Meine Daten

    Taichi X399, AMD X1950 3,40 Ghz, 64GB Ram, Geforce GTX 1080 8GB

    Monitor : Samsung C49RG94SSU

    EEP 16.3 Plugin all in :as_1:

    EEP 17.1

    Windows 10 Pro, Version 20H2, BSBuild 19042.1052

    "Geduld ist das Schwerste und das Einzige, was zu lernen sich lohnt. Alle Natur, alles Wachstum, aller Friede, alles Gedeihen und Schöne in der Welt beruht auf Geduld, braucht Zeit, braucht Stille, braucht Vertrauen."

    Hermann Hesse

  • kann man functionen in Tabellen schreiben?

    Ja kann man, da Lua aus einer großen Tabelle besteht, oder so ähnlich. Aber frage mich nicht, wie man das am Dümmsten anstellt (keine Zeit) :ae_1: . Frage da mal Jemanden, der sich mit Lua halbwegs auskennt. Aber für mehrere BUE bleibt doch die Funktion gleich, es ändert sich doch nur die Nummer/ ID, welche man in der Tabelle ablegen kann. Bei deinem Bahnübergang sind doch eh keine Sicherungen drin.:ad_1:

    MfG. Jörg
    Ausstattung: Notebook: i7-6700K, 4[8]x4.0 GHz, 32GB RAM DDR4, NVIDIA GTX 980M 8GB, Windows 10, 64-Bit
    Installiert: EEP17.2 Plugin 1 + 2

    Zusatzprogramme: ResourcenSwitcher2 (BH2), EEP-Gleisplan (Frank Buchholz)

  • Noch ne Frage, kann man functionen in Tabellen schreiben?

    Natürlich kann man. Lua nennt Funktionen auch "first class citizens", weil man mit ihnen alles machen kann, was man auch mit anderen Werten macht.

    Ich will Dir nicht Deine Aufgabe lösen, aber Dir etwas Hintergrund dazu vermitteln:

    Zunächst einmal sind die beiden Funktions-Definitionen im folgenden Code gleichwertig (bis auf eine Spezialität bei der Verwendung von Rekursion, was hier aber irrelevant ist):

    Lua
    function something(parameter)
        -- Inhalt der Funktion
    end
    something = function(parameter)
        -- Inhalt der Funktion
    end

    Wenn man eine Funktion einer Variablen zuweisen kann (untere Formulierung), kann man sie natürlich auch einem Tabellen-Eintrag zuweisen:

    Lua
    tabelle[position] = function(parameter)
        -- Inhalt der Funktion
    end

    Dabei kann position eine Zahl sein, oder auch eine Zeichenkette (oder noch etwas anderes).

    Das bedeutet auch, dass man eine Funktion schreiben kann, die Funktionen definiert und in eine Tabelle schreibt, etwa so:

    Lua
    function generateFunctions(tabelle, parameter1)
        local newFunction = function(parameter2)
            -- hier können globale Variablen, Variablen der äußeren Funktion (sogenannte "Up-Values")
            --      und lokale Variablen verwendet werden.
            -- parameter1 wäre hier ein Up-Value,
            -- parameter2 muss beim Aufruf der hier definierten Funktion mitgegeben werden.
        end;
        local position = -- ermittle hier, wo die neue Funktion abgelegt werden soll
        tabelle[position] = newFunction
    end

    Ich hoffe, das gibt Dir eine erste Vorstellung von den Möglichkeiten.

    Gruß

    Christopher

    PC: Intel i7-7700K; 64bit; 4,2 GHz; 32GB RAM; GeForce GTX 1080 (8 GB); Win 10, 22H2; EEP 6, 15 (Dev), 17.2 Plugins 1+2 (Dev); HomeNOS 17 (Dev)
    Laptop: Intel i7-12700H; 64bit; 2,7 GHz; 16GB RAM; GeForce RTX3070Ti (8 GB); Win 11, 23H2; EEP 6, 17 Plugins 1+2; HomeNOS 17 (User)

    2 Mal editiert, zuletzt von cetz (19. September 2019 um 12:19) aus folgendem Grund: Kleinigkeiten angepasst, danke @schlingo

  • Hallo @G.Stienen ,

    kannst Du mir Deinen Dislike begründen? Vielleicht kann ich ja etwas daraus lernen.

    Gruß

    Christopher

    PC: Intel i7-7700K; 64bit; 4,2 GHz; 32GB RAM; GeForce GTX 1080 (8 GB); Win 10, 22H2; EEP 6, 15 (Dev), 17.2 Plugins 1+2 (Dev); HomeNOS 17 (Dev)
    Laptop: Intel i7-12700H; 64bit; 2,7 GHz; 16GB RAM; GeForce RTX3070Ti (8 GB); Win 11, 23H2; EEP 6, 17 Plugins 1+2; HomeNOS 17 (User)

  • kannst Du mir Deinen Dislike begründen?

    Hallo Christopher :)

    vielleicht stört ihn Dein Rechtschreibfehler ;)

    Datei kann position eine Zahl sein

    Der ist ja auch extrem entscheidend, weil er Deinen ganzen Beitrag entstellt ;)

    Gruß Ingo

  • Hallo an alle Danke für die Infos.

    Zitat


    Ich will Dir nicht Deine Aufgabe lösen, aber Dir etwas Hintergrund dazu vermitteln:

    Es ist und bleibt ein schönes Hobby. Aber manchmal bekommt man graue Haare davon ( gut das ich keine mehr habe :an_1:) naja fast keine. Und das Wissen um Lua fehlt mir , und die Zeit dazu es zu lernen ( gute Ausrede nicht wahr :af_1: ) aber ich gebe mir Mühe!

    Gut Ding braucht weile und um die grauen Zellen auf Trab zu halten ist EEP für mich genau das richtige. Und wenn ich denn mal in Rente (gruseliges Wort) gehe hab ich dann auch mehr Zeit für mein Hobby.

    mfg Micha :aq_1:

    Meine Daten

    Taichi X399, AMD X1950 3,40 Ghz, 64GB Ram, Geforce GTX 1080 8GB

    Monitor : Samsung C49RG94SSU

    EEP 16.3 Plugin all in :as_1:

    EEP 17.1

    Windows 10 Pro, Version 20H2, BSBuild 19042.1052

    "Geduld ist das Schwerste und das Einzige, was zu lernen sich lohnt. Alle Natur, alles Wachstum, aller Friede, alles Gedeihen und Schöne in der Welt beruht auf Geduld, braucht Zeit, braucht Stille, braucht Vertrauen."

    Hermann Hesse

  • Zitat

    Dann kann man sich nämlich die ganzen Erklärungen sparen.

    Nein finde ich nicht. Ich frage ja nicht umsonst. Und ich nehme ja auch die Erklärungen auf und versuche mein jeweiliges Problem damit zu lösen. Nur von Grund auf Lua zu können dafür fehlt mir noch die Zeit. Und ich bin prakmatisch veranlagt. Wenn ich ein Problem habe und jemand sitzt neben mir und zeigt mir wie man es lösen kann lerne Ich mehr als wenn ich mir Youtube Videos anschaue. Das heißt nicht man braucht diese nicht. Jedem halt das Seine.

    mfg Micha :aq_1:

    Meine Daten

    Taichi X399, AMD X1950 3,40 Ghz, 64GB Ram, Geforce GTX 1080 8GB

    Monitor : Samsung C49RG94SSU

    EEP 16.3 Plugin all in :as_1:

    EEP 17.1

    Windows 10 Pro, Version 20H2, BSBuild 19042.1052

    "Geduld ist das Schwerste und das Einzige, was zu lernen sich lohnt. Alle Natur, alles Wachstum, aller Friede, alles Gedeihen und Schöne in der Welt beruht auf Geduld, braucht Zeit, braucht Stille, braucht Vertrauen."

    Hermann Hesse

  • Ich lerne auch nicht aus Videos. Bis die Stelle kommt, die mich eigentlich interessiert, ist meine Aufmerksamkeit meistens schon "flöten". Stattdessen nehme ich mir ein kleines, überschaubares Thema (etwa "Lua-Funktionen in Tabellen verwalten") und suche mir einen kurzen Text in einem Buch oder im Internet dazu.

    Aber richtig lernen tue ich erst, indem ich Fehler bei der Umsetzung mache, diese Fehler analysiere und als solche erkenne.

    So hat halt jeder seine Lernmethode, und es fällt mir am leichtesten, Dir Futter für eine ähnliche Lernmethode zu geben.

    Gruß

    Christopher

    PC: Intel i7-7700K; 64bit; 4,2 GHz; 32GB RAM; GeForce GTX 1080 (8 GB); Win 10, 22H2; EEP 6, 15 (Dev), 17.2 Plugins 1+2 (Dev); HomeNOS 17 (Dev)
    Laptop: Intel i7-12700H; 64bit; 2,7 GHz; 16GB RAM; GeForce RTX3070Ti (8 GB); Win 11, 23H2; EEP 6, 17 Plugins 1+2; HomeNOS 17 (User)

  • Zitat

    Ich lerne auch nicht aus Videos. Bis die Stelle kommt, die mich eigentlich interessiert, ist meine Aufmerksamkeit meistens schon "flöten".

    Genau so geht es mir auch.

    Zitat


    So hat halt jeder seine Lernmethode, und es fällt mir am leichtesten, Dir Futter für eine ähnliche Lernmethode zu geben.

    Und dieses Futter nehm ich gern. Danke dafür!

    mfg Micha :aq_1:

    Meine Daten

    Taichi X399, AMD X1950 3,40 Ghz, 64GB Ram, Geforce GTX 1080 8GB

    Monitor : Samsung C49RG94SSU

    EEP 16.3 Plugin all in :as_1:

    EEP 17.1

    Windows 10 Pro, Version 20H2, BSBuild 19042.1052

    "Geduld ist das Schwerste und das Einzige, was zu lernen sich lohnt. Alle Natur, alles Wachstum, aller Friede, alles Gedeihen und Schöne in der Welt beruht auf Geduld, braucht Zeit, braucht Stille, braucht Vertrauen."

    Hermann Hesse

  • richtig lernen tue ich erst, indem ich Fehler bei der Umsetzung mache, diese Fehler analysiere und als solche erkenne.

    Hallo :)

    auf neudeutsch nennt sich das Learning by doing. Ich behaupte, dass das die effektivste Lernmethode ist.

    Gruß Ingo