BetterContacts: Funktionsparameter in Kontaktpunkten, Nachfolger meiner "Codezeile"

!!! 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!
  • Wenn du trotzdem an deinem Wunsch festhältst und auch andere dies wollen, könnte ich eine weitere Option namens printVersionInfo hinzufügen, die dann die gewünschte Info ausgibt.

    Hallo Benny :)


    das handhabe ich genauso und wäre ganz in meinem Sinne.

    Die Rangelei um Lokale Variablen ist unnötig weil im Profi-Bereich, in allen Programmiersprachen, immer Lokale bevorzugt werden.

    Da zeigt sich halt der wahre Profi:be_1:


    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

    EEP 17.0


  • immer Lokale bevorzugt werden.

    vor allen Dingen, wenn und weil es da erfrischende und/oder berauschende Getränke und Geselligkeit gibt. :bg_1:

  • Hallo Ingo ( schlingo ),

    der wahre Profi zeigt sich darin, dass er die Version, global/local, einsetzt, die für das aktuelle Problem die beste Lösung ist.

    Und da können auch globale Variablen sinnvoll sein.

    Ich möchte nur als Beispiel Programmeinstellungen nennen, die einmalig, z.B. beim Programmstart, eingelesen werden und in verschiedensten Funktionen verwendet werden.

    Da werden in den seltensten Fällen bei jedem Funktionsaufruf die Einstellungs-Werte als Parameter übergeben (durchgeschleift) oder in den Funktionen jedesmal die Einstellungs-Werte neu gelesen.


    Aber das Problem mit den Kontaktpunkt-Funktionen mit Parametern wäre schon lange keines mehr, wenn das Manko, ich möchte es den Fehler nennen, sofort nach dem Feststellen in EEP behoben worden wäre, als dieser durch die User festgestellt wurde.

    So verlässt man sich von Seiten Trend einfach auf ein Dauer-Work-Around, der den Fehler behebt.

    Jürgen


    EEP: 12.1, 13.2, 14.1, 15.1, 16.4 (z.Zt. installiert, bezahlt, aber nur für Tests im Einsatz)

    keinerlei Zusatztools und manuell manipulierte Anlagendateien


    Prozessor: Intel(R) Core(TM) i5-4460S CPU @ 2.90 GHz 2.90 GHz
    PC: RAM 12 GB, Windows 10 Home, 64 Bit
    GK: NVIDIA Geforce GT 730, 4 GB

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

  • Hallo Benny,


    den Wunsch lasse ich mal so stehen, auch wenn ich diesen nicht mehr benötige, denn Du hast ja eine Zeile spendiert.

    print("Die Version von BetterContacts ist " .. table.concat(require("BetterContacts_BH2")._VERSION, "."))

    Bei mir steht es halt so da.

    LUA Source Code
    1. require("BetterContacts_BH2")
    2. print("Skript BetterContacts_BH2 v. ".. table.concat(require("BetterContacts_BH2")._VERSION, ".").. " wurde eingebunden.")

    Grundsätzlich habe ich immer 2 EEP-Versionen aktiv mit separaten LUA-Ordnern, da kann man schon mal ein Update in einer Version vergessen.

    Des weiteren kommen auch mal User und haben eine Herausforderung (Problem), da ist es hilfreich für mich, wenn das Skript geladen wird, welche Module mit welcher Version aktiv sind. Das nur als Hintergedanke von mir.

    Mir persönlich reicht die eine Zeile außerhalb des Skriptes. :bn_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: EEP16.4 mit Plugin1+2+3

    Zusatzprogramme: ResourcenSwitcher2, Anlagenverbinder für EEP16, EEP-Gleisplan (Frank Buchholz)

  • Heute ist das Plugin 3 für EEP16 erschienen, nun übergibt EEP bei einem Kontaktpunktaufruf auch die ID des Gleises, auf dem der Kontaktpunkt liegt, an die aufgerufene Lua-Funktion.

    Mir fällt dafür zwar kein Anwendungsfall ein, der nicht durch BetterContacts besser abgedeckt würde, aber meine mangelnde Fantasie soll euch nicht abhalten:


    Ab sofort gibt es auf meiner Homepage (und auf GitHub) die Version 1.1.0 von BetterContacts!


    Mit der neuen Option varnameTrackID kann nun ein Variablenname festgelegt werden, unter dem die Gleis-ID innerhalb des Kontaktpunkt-Eintrags zur Verfügung stehen soll . Standardmäßig ist kein Variablenname vergeben (ein vorgegebener Name könnte eine globale Variable gleichen Namens verdecken, das wäre ein Breaking Change); um die Gleis-ID nutzen zu können, müsst ihr also erstmal selbst einen Variablennamen vergeben.


    Und wo ich schonmal dabei war, habe ich auch noch gleich die schon länger versprochene Option printVersionInfo implementiert.


    Ein Minimalbeispiel, das beide Neuerungen zeigt:

    LUA Source Code
    1. clearlog()
    2. require("BetterContacts_BH2"){printVersionInfo=true,varnameTrackID="TrackID"}
    3. function EEPMain()
    4. return 1
    5. end

    Eintrag im Kontaktpunkt: print("Zug ", Zugname, " auf Gleis ", TrackID)


    Ausgabe im Ereignisfenster (mit Plugin 3 zu EEP16):


    Wer das Plugin 3 nicht hat, kann BetterContacts v1.1.0 übrigens trotzdem nutzen. In diesem Fall bleibt die Variable mit der Gleis-ID halt einfach nil.

    Im Ereignisfenster sieht das dann so aus (EEP16 ohne Plugin 3):



    Ich hoffe, ihr könnt damit etwas anfangen :ae_1:

    Rückmeldungen sind wie immer gerne gesehen, allerdings finde ich vermutlich erst morgen Abend wieder Zeit, ins Forum zu schauen.


    Viele Grüße

    Benny